diff --git a/DMS.Application/Interfaces/IDataLoaderService.cs b/DMS.Application/Interfaces/IDataLoaderService.cs index d3ba392..851ca72 100644 --- a/DMS.Application/Interfaces/IDataLoaderService.cs +++ b/DMS.Application/Interfaces/IDataLoaderService.cs @@ -44,8 +44,5 @@ public interface IDataLoaderService /// Task LoadAllNlogsAsync(int count); - /// - /// 当数据加载完成时触发 - /// - event EventHandler OnLoadDataCompleted; + } \ No newline at end of file diff --git a/DMS.Application/Interfaces/IEventService.cs b/DMS.Application/Interfaces/IEventService.cs index 0b152da..e8a9b15 100644 --- a/DMS.Application/Interfaces/IEventService.cs +++ b/DMS.Application/Interfaces/IEventService.cs @@ -125,4 +125,16 @@ public interface IEventService /// 变量启停改变事件 /// event EventHandler OnVariableActiveChanged; + + /// + /// 数据加载完成事件 + /// + event EventHandler OnLoadDataCompleted; + + /// + /// 触发数据加载完成事件 + /// + /// 事件发送者 + /// 数据加载完成事件参数 + void RaiseLoadDataCompleted(object sender, DataLoadCompletedEventArgs e); } \ No newline at end of file diff --git a/DMS.Application/Services/DataLoaderService.cs b/DMS.Application/Services/DataLoaderService.cs index b9b472e..ddc7cd2 100644 --- a/DMS.Application/Services/DataLoaderService.cs +++ b/DMS.Application/Services/DataLoaderService.cs @@ -28,11 +28,9 @@ public class DataLoaderService : IDataLoaderService private readonly IMqttAppService _mqttAppService; private readonly INlogAppService _nlogAppService; private readonly ITriggerManagementService _triggerManagementService; // 添加触发器管理服务 + private readonly IEventService _eventService; // 添加事件服务 + - /// - /// 当数据加载完成时触发 - /// - public event EventHandler OnLoadDataCompleted; public const int LoadLogCount =100; public DataLoaderService( @@ -45,7 +43,8 @@ public class DataLoaderService : IDataLoaderService IMenuService menuService, IMqttAppService mqttAppService, INlogAppService nlogAppService, - ITriggerManagementService triggerManagementService) // 添加触发器管理服务参数 + ITriggerManagementService triggerManagementService, // 添加触发器管理服务参数 + IEventService eventService) // 添加事件服务参数 { _repositoryManager = repositoryManager; _mapper = mapper; @@ -57,6 +56,7 @@ public class DataLoaderService : IDataLoaderService _mqttAppService = mqttAppService; _nlogAppService = nlogAppService; _triggerManagementService = triggerManagementService; // 初始化触发器管理服务 + _eventService = eventService; // 初始化事件服务 } @@ -86,7 +86,7 @@ public class DataLoaderService : IDataLoaderService // 加载所有触发器 await LoadAllTriggersAsync(); - OnLoadDataCompleted?.Invoke(this, new DataLoadCompletedEventArgs(true, "数据加载成功")); + _eventService.RaiseLoadDataCompleted(this, new DataLoadCompletedEventArgs(true, "数据加载成功")); } /// diff --git a/DMS.Application/Services/EventService.cs b/DMS.Application/Services/EventService.cs index 4f487e2..205fe22 100644 --- a/DMS.Application/Services/EventService.cs +++ b/DMS.Application/Services/EventService.cs @@ -161,4 +161,23 @@ public class EventService : IEventService } #endregion + + #region 数据加载事件 + + /// + /// 数据加载完成事件 + /// + public event EventHandler OnLoadDataCompleted; + + /// + /// 触发数据加载完成事件 + /// + /// 事件发送者 + /// 数据加载完成事件参数 + public void RaiseLoadDataCompleted(object sender, DataLoadCompletedEventArgs e) + { + OnLoadDataCompleted?.Invoke(sender, e); + } + + #endregion } \ No newline at end of file diff --git a/DMS.Infrastructure/Services/Mqtt/MqttBackgroundService.cs b/DMS.Infrastructure/Services/Mqtt/MqttBackgroundService.cs index ef4d9a9..3aea17e 100644 --- a/DMS.Infrastructure/Services/Mqtt/MqttBackgroundService.cs +++ b/DMS.Infrastructure/Services/Mqtt/MqttBackgroundService.cs @@ -16,6 +16,7 @@ namespace DMS.Infrastructure.Services.Mqtt { private readonly ILogger _logger; private readonly IMqttServiceManager _mqttServiceManager; + private readonly IEventService _eventService; private readonly IAppDataStorageService _appDataStorageService; private readonly IAppDataCenterService _appDataCenterService; private readonly ConcurrentDictionary _mqttServers; @@ -24,16 +25,18 @@ namespace DMS.Infrastructure.Services.Mqtt public MqttBackgroundService( ILogger logger, IMqttServiceManager mqttServiceManager, + IEventService eventService, IAppDataStorageService appDataStorageService, IAppDataCenterService appDataCenterService) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _mqttServiceManager = mqttServiceManager ?? throw new ArgumentNullException(nameof(mqttServiceManager)); + _eventService = eventService; _appDataStorageService = appDataStorageService; _appDataCenterService = appDataCenterService ?? throw new ArgumentNullException(nameof(appDataCenterService)); _mqttServers = new ConcurrentDictionary(); - _appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted; + _eventService.OnLoadDataCompleted += OnLoadDataCompleted; } private void OnLoadDataCompleted(object? sender, DataLoadCompletedEventArgs e) @@ -250,7 +253,7 @@ namespace DMS.Infrastructure.Services.Mqtt { _logger.LogInformation("正在释放MQTT后台服务资源..."); - _appDataCenterService.DataLoaderService.OnLoadDataCompleted -= OnLoadDataCompleted; + _eventService.OnLoadDataCompleted -= OnLoadDataCompleted; _reloadSemaphore?.Dispose(); base.Dispose(); diff --git a/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs b/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs index 78238cb..18e26ea 100644 --- a/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs +++ b/DMS.Infrastructure/Services/OpcUa/OptimizedOpcUaBackgroundService.cs @@ -23,6 +23,7 @@ namespace DMS.Infrastructure.Services.OpcUa public OptimizedOpcUaBackgroundService( IAppDataCenterService appDataCenterService, IAppDataStorageService appDataStorageService, + IEventService eventService, IOpcUaServiceManager opcUaServiceManager, ILogger logger) { @@ -30,8 +31,8 @@ namespace DMS.Infrastructure.Services.OpcUa _appDataStorageService = appDataStorageService; _opcUaServiceManager = opcUaServiceManager ?? throw new ArgumentNullException(nameof(opcUaServiceManager)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - - _appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted; + _eventService = eventService; + _eventService.OnLoadDataCompleted += OnLoadDataCompleted; } @@ -146,7 +147,7 @@ namespace DMS.Infrastructure.Services.OpcUa { _logger.LogInformation("正在释放OPC UA后台服务资源..."); - _appDataCenterService.DataLoaderService.OnLoadDataCompleted -= OnLoadDataCompleted; + _eventService.OnLoadDataCompleted -= OnLoadDataCompleted; _reloadSemaphore?.Dispose(); base.Dispose(); diff --git a/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs b/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs index f24624b..0473856 100644 --- a/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs +++ b/DMS.Infrastructure/Services/S7/OptimizedS7BackgroundService.cs @@ -51,7 +51,7 @@ public class OptimizedS7BackgroundService : BackgroundService _s7ServiceManager = s7ServiceManager; _logger = logger; - _appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted; + _eventService.OnLoadDataCompleted += OnLoadDataCompleted; } diff --git a/DMS.WPF/Services/DataEventService.cs b/DMS.WPF/Services/DataEventService.cs index 2325507..b789a7f 100644 --- a/DMS.WPF/Services/DataEventService.cs +++ b/DMS.WPF/Services/DataEventService.cs @@ -49,7 +49,7 @@ public class DataEventService : IDataEventService // 监听变量值变更事件 _eventService.OnVariableValueChanged += OnVariableValueChanged; _eventService.OnMqttServerChanged += OnMqttServerChanged; - _appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted; + _eventService.OnLoadDataCompleted += OnLoadDataCompleted; // 监听日志变更事件 // _appDataCenterService.OnLogChanged += _logDataService.OnNlogChanged;