Files
DMS/DMS.Application/Services/DataLoaderService.cs
David P.G cb984b1b91 1 feat: 重构触发器定义模型并完善触发器-变量关联功能
2
    3 - 重命名TriggerDefinition类为Trigger,移除冗余的Definition后缀
    4 - 更新所有相关接口和实现类以使用新的Trigger类名
    5 - 在Variable模型中添加Triggers集合,实现变量到触发器的反向关联
    6 - 在TriggerVariableManagementService中完善触发器与变量的双向关联逻辑
    7 - 将触发器-变量关联数据加载集成到DataLoaderService中
    8 - 在依赖注入容器中注册ITriggerVariableManagementService和ITriggerVariableAppService
    9 - 更新触发器相关的DTO映射配置
   10 - 修复触发器评估服务中的类型引用问题
   11
   12 此更改统一了触发器模型命名,完善了触发器与变量的双向关联关系,提高了代码的一致性和可维护性。
2025-10-18 18:23:14 +08:00

86 lines
4.3 KiB
C#

using DMS.Application.Interfaces;
using System.Collections.Concurrent;
using DMS.Application.Events;
using DMS.Application.Interfaces.Management;
using DMS.Application.Services.Management;
using DMS.Core.Models;
using DMS.Core.Models.Triggers;
using DMS.Application.Services.Triggers;
namespace DMS.Application.Services;
/// <summary>
/// 数据加载服务,负责从数据源加载数据到内存中
/// </summary>
public class DataLoaderService : IDataLoaderService
{
private readonly IMqttManagementService _mqttManagementService;
private readonly IMqttAliasManagementService _mqttAliasManagementService;
private readonly ITriggerVariableManagementService _triggerVariableManagementService;
private readonly ITriggerManagementService _triggerManagementService; // 添加触发器管理服务
private readonly IEventService _eventService; // 添加事件服务
private readonly IDeviceManagementService _deviceManagementService; // 添加设备管理服务
private readonly IVariableTableManagementService _variableTableManagementService; // 添加变量表管理服务
private readonly IVariableManagementService _variableManagementService; // 添加变量管理服务
private readonly IMenuManagementService _menuManagementService; // 添加菜单管理服务
private readonly ILogManagementService _logManagementService; // 添加日志管理服务
public const int LoadLogCount =100;
public DataLoaderService(IMqttManagementService mqttManagementService,
IMqttAliasManagementService mqttAliasManagementService,
ITriggerVariableManagementService triggerVariableManagementService,
ITriggerManagementService triggerManagementService, // 添加触发器管理服务参数
IEventService eventService, // 添加事件服务参数
IDeviceManagementService deviceManagementService, // 添加设备管理服务参数
IVariableTableManagementService variableTableManagementService, // 添加变量表管理服务参数
IVariableManagementService variableManagementService, // 添加变量管理服务参数
IMenuManagementService menuManagementService, // 添加菜单管理服务参数
ILogManagementService logManagementService) // 添加日志管理服务参数
{
_mqttManagementService = mqttManagementService;
_mqttAliasManagementService = mqttAliasManagementService;
_triggerVariableManagementService = triggerVariableManagementService;
_triggerManagementService = triggerManagementService; // 初始化触发器管理服务
_eventService = eventService; // 初始化事件服务
_deviceManagementService = deviceManagementService; // 初始化设备管理服务
_variableTableManagementService = variableTableManagementService; // 初始化变量表管理服务
_variableManagementService = variableManagementService; // 初始化变量管理服务
_menuManagementService = menuManagementService; // 初始化菜单管理服务
_logManagementService = logManagementService; // 初始化日志管理服务
}
/// <summary>
/// 异步加载所有设备及其关联数据到内存中
/// </summary>
public async Task LoadAllDataToMemoryAsync()
{
await _deviceManagementService.LoadAllDevicesAsync();
await _variableTableManagementService.LoadAllVariableTablesAsync();
await _variableManagementService.LoadAllVariablesAsync();
// 加载所有菜单
await _menuManagementService.LoadAllMenusAsync();
// 加载所有MQTT服务器
await _mqttManagementService.LoadAllMqttServersAsync();
// 加载所有日志
await _logManagementService.LoadAllNlogsAsync(LoadLogCount);
// 获取变量MQTT别名
await _mqttAliasManagementService.LoadAllMqttAliasAsync();
// 加载所有触发器
await _triggerManagementService.LoadAllTriggersAsync();
// 加载触发器和变量的关联
await _triggerVariableManagementService.LoadAllTriggerVariablesAsync();
_eventService.RaiseLoadDataCompleted(this, new DataLoadCompletedEventArgs(true, "数据加载成功"));
}
}