|
|
|
@ -29,7 +29,7 @@ namespace IoTCenter.Controllers
|
|
|
|
|
private readonly IHubContext<PageHub> _pageHubContext;
|
|
|
|
|
private readonly IRepository<Node> _nodeRepo;
|
|
|
|
|
private readonly IRepository<Device> _deviceRepo;
|
|
|
|
|
private readonly IRepository<Sence> _senceRepo;
|
|
|
|
|
private readonly IRepository<Scene> _senceRepo;
|
|
|
|
|
|
|
|
|
|
public NotifyController(ILogger<NotifyController> logger,
|
|
|
|
|
IConfiguration configuration,
|
|
|
|
@ -38,7 +38,7 @@ namespace IoTCenter.Controllers
|
|
|
|
|
IHubContext<PageHub> pageHubContext,
|
|
|
|
|
IRepository<Node> nodeRepository,
|
|
|
|
|
IRepository<Device> deviceReposigory,
|
|
|
|
|
IRepository<Sence> senceRepository)
|
|
|
|
|
IRepository<Scene> senceRepository)
|
|
|
|
|
{
|
|
|
|
|
this._logger = logger;
|
|
|
|
|
this._configuration = configuration;
|
|
|
|
@ -230,7 +230,7 @@ namespace IoTCenter.Controllers
|
|
|
|
|
{
|
|
|
|
|
var model = this.ReadPostData();
|
|
|
|
|
var newNode = model.FromJson<Node>();
|
|
|
|
|
var node = this._nodeRepo.Table().Include(o => o.Sences).Include(o => o.Devices).FirstOrDefault(o => o.Number == newNode.Number);
|
|
|
|
|
var node = this._nodeRepo.Table().Include(o => o.Scenes).Include(o => o.Devices).FirstOrDefault(o => o.Number == newNode.Number);
|
|
|
|
|
if (node != null && node.Id != newNode.Id)
|
|
|
|
|
{
|
|
|
|
|
this._nodeRepo.Delete(node);
|
|
|
|
@ -244,22 +244,22 @@ namespace IoTCenter.Controllers
|
|
|
|
|
}
|
|
|
|
|
node.FromPlain(newNode);
|
|
|
|
|
this._nodeRepo.SaveChanges();
|
|
|
|
|
foreach (var id in node.Sences.Select(o => o.Id).ToList())
|
|
|
|
|
foreach (var id in node.Scenes.Select(o => o.Id).ToList())
|
|
|
|
|
{
|
|
|
|
|
if (!newNode.Sences.Any(o => o.Id == id))
|
|
|
|
|
if (!newNode.Scenes.Any(o => o.Id == id))
|
|
|
|
|
{
|
|
|
|
|
node.Sences.Remove(node.Sences.FirstOrDefault(o => o.Id == id));
|
|
|
|
|
node.Scenes.Remove(node.Scenes.FirstOrDefault(o => o.Id == id));
|
|
|
|
|
this._nodeRepo.SaveChanges();
|
|
|
|
|
this._pageHubContext.Clients.Group("page").SendAsync("DeleteSence", id.ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
foreach (var newSence in newNode.Sences)
|
|
|
|
|
foreach (var newSence in newNode.Scenes)
|
|
|
|
|
{
|
|
|
|
|
var sence = node.Sences.FirstOrDefault(o => o.Id == newSence.Id);
|
|
|
|
|
var sence = node.Scenes.FirstOrDefault(o => o.Id == newSence.Id);
|
|
|
|
|
if (sence == null)
|
|
|
|
|
{
|
|
|
|
|
sence = new Sence();
|
|
|
|
|
node.Sences.Add(sence);
|
|
|
|
|
sence = new Scene();
|
|
|
|
|
node.Scenes.Add(sence);
|
|
|
|
|
}
|
|
|
|
|
sence.FromPlain(newSence);
|
|
|
|
|
this._nodeRepo.SaveChanges();
|
|
|
|
|