2025-09-02 20:28:29 +08:00
|
|
|
using AutoMapper;
|
|
|
|
|
using DMS.Application.DTOs;
|
2025-09-05 07:03:47 +08:00
|
|
|
using DMS.Core.Models;
|
2025-09-02 20:28:29 +08:00
|
|
|
using DMS.Application.Interfaces;
|
|
|
|
|
using DMS.Core.Interfaces;
|
|
|
|
|
using DMS.Core.Models;
|
|
|
|
|
using DMS.Core.Enums;
|
|
|
|
|
using System.Collections.Concurrent;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
2025-09-16 14:42:23 +08:00
|
|
|
using DMS.Application.Events;
|
2025-09-16 12:29:09 +08:00
|
|
|
using DMS.Application.Interfaces.Management;
|
2025-09-15 20:54:32 +08:00
|
|
|
using DMS.Core.Events;
|
2025-09-02 20:28:29 +08:00
|
|
|
|
|
|
|
|
namespace DMS.Application.Services;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-09-07 20:35:40 +08:00
|
|
|
/// 数据中心服务,负责管理所有的数据,包括设备、变量表、变量、菜单和日志。
|
2025-09-09 13:35:16 +08:00
|
|
|
/// 实现 <see cref="IAppDataCenterService"/> 接口。
|
2025-09-02 20:28:29 +08:00
|
|
|
/// </summary>
|
2025-09-09 13:35:16 +08:00
|
|
|
public class AppDataCenterService : IAppDataCenterService
|
2025-09-02 20:28:29 +08:00
|
|
|
{
|
2025-09-03 11:12:42 +08:00
|
|
|
private readonly IMapper _mapper;
|
2025-09-09 15:28:07 +08:00
|
|
|
private readonly IRepositoryManager _repositoryManager;
|
2025-09-06 13:19:20 +08:00
|
|
|
|
2025-09-07 20:35:40 +08:00
|
|
|
|
2025-09-02 21:06:39 +08:00
|
|
|
#region 事件定义
|
|
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
|
2025-09-02 21:06:39 +08:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当设备数据发生变化时触发
|
|
|
|
|
/// </summary>
|
|
|
|
|
public event EventHandler<DeviceChangedEventArgs> DeviceChanged;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当变量表数据发生变化时触发
|
|
|
|
|
/// </summary>
|
|
|
|
|
public event EventHandler<VariableTableChangedEventArgs> VariableTableChanged;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当变量数据发生变化时触发
|
|
|
|
|
/// </summary>
|
|
|
|
|
public event EventHandler<VariableChangedEventArgs> VariableChanged;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-09-03 11:12:42 +08:00
|
|
|
/// 当菜单数据发生变化时触发
|
2025-09-02 20:28:29 +08:00
|
|
|
/// </summary>
|
2025-09-03 11:12:42 +08:00
|
|
|
public event EventHandler<MenuChangedEventArgs> MenuChanged;
|
2025-09-02 20:28:29 +08:00
|
|
|
|
|
|
|
|
/// <summary>
|
2025-09-06 13:19:20 +08:00
|
|
|
/// 当MQTT服务器数据发生变化时触发
|
2025-09-02 20:28:29 +08:00
|
|
|
/// </summary>
|
2025-09-06 13:19:20 +08:00
|
|
|
public event EventHandler<MqttServerChangedEventArgs> MqttServerChanged;
|
|
|
|
|
|
2025-09-07 20:35:40 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 当日志数据发生变化时触发
|
|
|
|
|
/// </summary>
|
|
|
|
|
public event EventHandler<NlogChangedEventArgs> NlogChanged;
|
2025-09-02 20:28:29 +08:00
|
|
|
|
2025-09-05 07:03:47 +08:00
|
|
|
/// <summary>
|
|
|
|
|
/// 当变量值发生变化时触发
|
|
|
|
|
/// </summary>
|
|
|
|
|
public event EventHandler<VariableValueChangedEventArgs> VariableValueChanged;
|
|
|
|
|
|
2025-09-03 11:12:42 +08:00
|
|
|
#endregion
|
2025-09-02 20:28:29 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
|
2025-09-09 13:35:16 +08:00
|
|
|
public AppDataCenterService(
|
2025-09-02 20:28:29 +08:00
|
|
|
IRepositoryManager repositoryManager,
|
|
|
|
|
IMapper mapper,
|
2025-09-09 15:28:07 +08:00
|
|
|
IDataLoaderService dataLoaderService,
|
|
|
|
|
IDeviceManagementService deviceManagementService,
|
|
|
|
|
IVariableTableManagementService variableTableManagementService,
|
|
|
|
|
IVariableManagementService variableManagementService,
|
|
|
|
|
IMenuManagementService menuManagementService,
|
|
|
|
|
IMqttManagementService mqttManagementService,
|
|
|
|
|
ILogManagementService logManagementService
|
|
|
|
|
)
|
2025-09-02 20:28:29 +08:00
|
|
|
{
|
|
|
|
|
_repositoryManager = repositoryManager;
|
|
|
|
|
_mapper = mapper;
|
2025-09-09 15:28:07 +08:00
|
|
|
DataLoaderService = dataLoaderService;
|
2025-09-07 21:16:56 +08:00
|
|
|
|
|
|
|
|
// 初始化管理服务
|
2025-09-09 15:28:07 +08:00
|
|
|
DeviceManagementService = deviceManagementService;
|
|
|
|
|
VariableTableManagementService = variableTableManagementService;
|
|
|
|
|
VariableManagementService = variableManagementService;
|
|
|
|
|
MenuManagementService = menuManagementService;
|
|
|
|
|
MqttManagementService = mqttManagementService;
|
|
|
|
|
LogManagementService = logManagementService;
|
2025-09-03 12:53:32 +08:00
|
|
|
}
|
|
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public ILogManagementService LogManagementService { get; set; }
|
2025-09-03 12:53:32 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public IMqttManagementService MqttManagementService { get; set; }
|
2025-09-03 12:53:32 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public IMenuManagementService MenuManagementService { get; set; }
|
2025-09-03 12:53:32 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public IVariableManagementService VariableManagementService { get; set; }
|
2025-09-03 12:53:32 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public IVariableTableManagementService VariableTableManagementService { get; set; }
|
2025-09-03 12:53:32 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public IDeviceManagementService DeviceManagementService { get; set; }
|
2025-09-03 12:53:32 +08:00
|
|
|
|
2025-09-09 15:28:07 +08:00
|
|
|
public IDataLoaderService DataLoaderService { get; set; }
|
2025-09-02 20:28:29 +08:00
|
|
|
}
|