|
|
|
@ -25,9 +25,6 @@ namespace IoTCenter.Services
|
|
|
|
|
IEventHander<EntityInsertedEvent<SceneTimer>>,
|
|
|
|
|
IEventHander<EntityUpdatedEvent<SceneTimer>>,
|
|
|
|
|
IEventHander<EntityDeletedEvent<SceneTimer>>,
|
|
|
|
|
IEventHander<EntityInsertedEvent<SceneTigger>>,
|
|
|
|
|
IEventHander<EntityUpdatedEvent<SceneTigger>>,
|
|
|
|
|
IEventHander<EntityDeletedEvent<SceneTigger>>,
|
|
|
|
|
IEventHander<EntityInsertedEvent<Node>>,
|
|
|
|
|
IEventHander<EntityUpdatedEvent<Node>>,
|
|
|
|
|
IEventHander<EntityDeletedEvent<Node>>,
|
|
|
|
@ -47,12 +44,12 @@ namespace IoTCenter.Services
|
|
|
|
|
IEventHander<EntityUpdatedEvent<Scene>>,
|
|
|
|
|
IEventHander<EntityDeletedEvent<Scene>>
|
|
|
|
|
{
|
|
|
|
|
public static ConcurrentDictionary<Guid, SceneTigger> Tiggers = new ConcurrentDictionary<Guid, SceneTigger>();
|
|
|
|
|
private readonly IConfiguration _cfg;
|
|
|
|
|
private readonly ILogger<IoTCenterEventHandler> _logger;
|
|
|
|
|
private readonly IRepository<Scene> _sceneRepo;
|
|
|
|
|
private readonly IRepository<Device> _deviceRepo;
|
|
|
|
|
private readonly IRepository<SceneTigger> _sceneTiggerRepo;
|
|
|
|
|
private readonly ISceneTiggerService _sceneTiggerService;
|
|
|
|
|
private readonly IHubContext<IoTCenterHub> _hub;
|
|
|
|
|
private readonly IHttpClientFactory _httpClientFactory;
|
|
|
|
|
|
|
|
|
@ -61,6 +58,7 @@ namespace IoTCenter.Services
|
|
|
|
|
IRepository<Scene> sceneRepo,
|
|
|
|
|
IRepository<Device> deviceRepo,
|
|
|
|
|
IRepository<SceneTigger> sceneTiggerRepo,
|
|
|
|
|
ISceneTiggerService sceneTiggerService,
|
|
|
|
|
IHubContext<IoTCenterHub> hub,
|
|
|
|
|
IHttpClientFactory httpClientFactory)
|
|
|
|
|
{
|
|
|
|
@ -69,6 +67,7 @@ namespace IoTCenter.Services
|
|
|
|
|
this._sceneRepo = sceneRepo;
|
|
|
|
|
this._deviceRepo = deviceRepo;
|
|
|
|
|
this._sceneTiggerRepo = sceneTiggerRepo;
|
|
|
|
|
this._sceneTiggerService = sceneTiggerService;
|
|
|
|
|
this._hub = hub;
|
|
|
|
|
this._httpClientFactory = httpClientFactory;
|
|
|
|
|
}
|
|
|
|
@ -119,39 +118,6 @@ namespace IoTCenter.Services
|
|
|
|
|
|
|
|
|
|
#endregion timer
|
|
|
|
|
|
|
|
|
|
#region tigger
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityInsertedEvent<SceneTigger> message)
|
|
|
|
|
{
|
|
|
|
|
var tigger = message.Data;
|
|
|
|
|
if (_sceneRepo.ReadOnlyTable().Any(o => o.Id == tigger.SceneId && o.NodeId == null))
|
|
|
|
|
{
|
|
|
|
|
Tiggers.TryRemove(message.Data.Id, out _);
|
|
|
|
|
Tiggers.TryAdd(tigger.Id, tigger);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityUpdatedEvent<SceneTigger> message)
|
|
|
|
|
{
|
|
|
|
|
var tigger = message.Data;
|
|
|
|
|
if (_sceneRepo.ReadOnlyTable().Any(o => o.Id == tigger.SceneId && o.NodeId == null))
|
|
|
|
|
{
|
|
|
|
|
Tiggers.TryRemove(message.Data.Id, out _);
|
|
|
|
|
Tiggers.TryAdd(tigger.Id, tigger);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityDeletedEvent<SceneTigger> message)
|
|
|
|
|
{
|
|
|
|
|
var tigger = message.Data;
|
|
|
|
|
if (_sceneRepo.ReadOnlyTable().Any(o => o.Id == tigger.SceneId && o.NodeId == null))
|
|
|
|
|
{
|
|
|
|
|
Tiggers.TryRemove(tigger.Id, out _);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion tigger
|
|
|
|
|
|
|
|
|
|
#region Product
|
|
|
|
|
|
|
|
|
|
public void Handle(EntityInsertedEvent<Product> message)
|
|
|
|
@ -292,10 +258,9 @@ namespace IoTCenter.Services
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in Tiggers)
|
|
|
|
|
foreach (var tigger in this._sceneTiggerService.GetSceneTiggers())
|
|
|
|
|
{
|
|
|
|
|
var data = message.Data;
|
|
|
|
|
var tigger = item.Value;
|
|
|
|
|
if (tigger.DataId == data.Id)
|
|
|
|
|
{
|
|
|
|
|
var methodText = $"bool Valid(string name,string key,{data.Type.ToString().ToLower()} value,string description){{ return {tigger.Condition};}}";
|
|
|
|
|