|
|
@ -28,6 +28,8 @@ namespace IoTCenter.Services
|
|
|
|
public class IoTCenterEventHandler :
|
|
|
|
public class IoTCenterEventHandler :
|
|
|
|
IEventHander<EntityInsertedEvent<Organ>>,
|
|
|
|
IEventHander<EntityInsertedEvent<Organ>>,
|
|
|
|
IEventHander<EntityUpdatedEvent<Organ>>,
|
|
|
|
IEventHander<EntityUpdatedEvent<Organ>>,
|
|
|
|
|
|
|
|
IEventHander<EntityInsertedEvent<NodeCategory>>,
|
|
|
|
|
|
|
|
IEventHander<EntityUpdatedEvent<NodeCategory>>,
|
|
|
|
IEventHander<EntityInsertedEvent<SceneTimer>>,
|
|
|
|
IEventHander<EntityInsertedEvent<SceneTimer>>,
|
|
|
|
IEventHander<EntityUpdatedEvent<SceneTimer>>,
|
|
|
|
IEventHander<EntityUpdatedEvent<SceneTimer>>,
|
|
|
|
IEventHander<EntityDeletedEvent<SceneTimer>>,
|
|
|
|
IEventHander<EntityDeletedEvent<SceneTimer>>,
|
|
|
@ -55,6 +57,8 @@ namespace IoTCenter.Services
|
|
|
|
private readonly ISettingService _settingService;
|
|
|
|
private readonly ISettingService _settingService;
|
|
|
|
private readonly ILogger<IoTCenterEventHandler> _logger;
|
|
|
|
private readonly ILogger<IoTCenterEventHandler> _logger;
|
|
|
|
private readonly IRepository<Node> _nodeRepo;
|
|
|
|
private readonly IRepository<Node> _nodeRepo;
|
|
|
|
|
|
|
|
private readonly IRepository<NodeCategory> _nodeCategoryRepo;
|
|
|
|
|
|
|
|
private readonly IRepository<NodeCategoryNode> _nodeCategoryNodeRepo;
|
|
|
|
private readonly IRepository<Organ> _organRepo;
|
|
|
|
private readonly IRepository<Organ> _organRepo;
|
|
|
|
private readonly IRepository<OrganNode> _organNodeRepo;
|
|
|
|
private readonly IRepository<OrganNode> _organNodeRepo;
|
|
|
|
private readonly IRepository<Scene> _sceneRepo;
|
|
|
|
private readonly IRepository<Scene> _sceneRepo;
|
|
|
@ -68,6 +72,8 @@ namespace IoTCenter.Services
|
|
|
|
ISettingService settingService,
|
|
|
|
ISettingService settingService,
|
|
|
|
ILogger<IoTCenterEventHandler> logger,
|
|
|
|
ILogger<IoTCenterEventHandler> logger,
|
|
|
|
IRepository<Node> nodeRepo,
|
|
|
|
IRepository<Node> nodeRepo,
|
|
|
|
|
|
|
|
IRepository<NodeCategory> nodeCategoryRepo,
|
|
|
|
|
|
|
|
IRepository<NodeCategoryNode> nodeCategoryNodeRepo,
|
|
|
|
IRepository<Organ> organRepo,
|
|
|
|
IRepository<Organ> organRepo,
|
|
|
|
IRepository<OrganNode> organNodeRepo,
|
|
|
|
IRepository<OrganNode> organNodeRepo,
|
|
|
|
IRepository<Scene> sceneRepo,
|
|
|
|
IRepository<Scene> sceneRepo,
|
|
|
@ -81,6 +87,8 @@ namespace IoTCenter.Services
|
|
|
|
this._settingService = settingService;
|
|
|
|
this._settingService = settingService;
|
|
|
|
this._logger = logger;
|
|
|
|
this._logger = logger;
|
|
|
|
this._nodeRepo = nodeRepo;
|
|
|
|
this._nodeRepo = nodeRepo;
|
|
|
|
|
|
|
|
this._nodeCategoryRepo = nodeCategoryRepo;
|
|
|
|
|
|
|
|
this._nodeCategoryNodeRepo = nodeCategoryNodeRepo;
|
|
|
|
this._organRepo = organRepo;
|
|
|
|
this._organRepo = organRepo;
|
|
|
|
this._organNodeRepo = organNodeRepo;
|
|
|
|
this._organNodeRepo = organNodeRepo;
|
|
|
|
this._sceneRepo = sceneRepo;
|
|
|
|
this._sceneRepo = sceneRepo;
|
|
|
@ -193,6 +201,22 @@ namespace IoTCenter.Services
|
|
|
|
|
|
|
|
|
|
|
|
#endregion organ
|
|
|
|
#endregion organ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region nodeCategory
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityInsertedEvent<NodeCategory> message)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.Notify(message);
|
|
|
|
|
|
|
|
this.UpdateNodeCategory(message.Data);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityUpdatedEvent<NodeCategory> message)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this.Notify(message);
|
|
|
|
|
|
|
|
this.UpdateNodeCategory(message.Data);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion nodeCategory
|
|
|
|
|
|
|
|
|
|
|
|
#region Device
|
|
|
|
#region Device
|
|
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityInsertedEvent<Device> message)
|
|
|
|
public void Handle(EntityInsertedEvent<Device> message)
|
|
|
@ -466,6 +490,24 @@ namespace IoTCenter.Services
|
|
|
|
|
|
|
|
|
|
|
|
private void UpdateOrganNode(Node node)
|
|
|
|
private void UpdateOrganNode(Node node)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var category = this._nodeCategoryRepo.ReadOnlyTable().FirstOrDefault(o => o.Number == node.CategoryNumber);
|
|
|
|
|
|
|
|
if (category != null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var nodeCategory = this._nodeCategoryNodeRepo.Table().FirstOrDefault(o => o.NodeId == node.Id);
|
|
|
|
|
|
|
|
if (nodeCategory == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
nodeCategory = new NodeCategoryNode { CategoryId = category.Id, NodeId = node.Id };
|
|
|
|
|
|
|
|
this._nodeCategoryNodeRepo.Add(nodeCategory);
|
|
|
|
|
|
|
|
this._nodeCategoryNodeRepo.SaveChanges();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this._logger.LogError(ex.ToString());
|
|
|
|
|
|
|
|
}
|
|
|
|
try
|
|
|
|
try
|
|
|
|
{
|
|
|
|
{
|
|
|
|
var organ = this._organRepo.ReadOnlyTable().FirstOrDefault(o => o.Number == node.OrganNumber);
|
|
|
|
var organ = this._organRepo.ReadOnlyTable().FirstOrDefault(o => o.Number == node.OrganNumber);
|
|
|
@ -507,5 +549,27 @@ namespace IoTCenter.Services
|
|
|
|
this._logger.LogError(ex.ToString());
|
|
|
|
this._logger.LogError(ex.ToString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void UpdateNodeCategory(NodeCategory category)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var nodes = this._nodeRepo.ReadOnlyTable().Where(o => o.CategoryNumber == category.Number).Select(o => o.Id).ToList();
|
|
|
|
|
|
|
|
foreach (var nodeId in nodes)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var categoryNode = this._nodeCategoryNodeRepo.Table().FirstOrDefault(o => o.NodeId == nodeId);
|
|
|
|
|
|
|
|
if (categoryNode == null)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
categoryNode = new NodeCategoryNode { CategoryId = category.Id, NodeId = nodeId };
|
|
|
|
|
|
|
|
this._nodeCategoryNodeRepo.Add(categoryNode);
|
|
|
|
|
|
|
|
this._nodeCategoryNodeRepo.SaveChanges();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
this._logger.LogError(ex.ToString());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|