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;