using AutoMapper;
using DMS.Application.DTOs;
using DMS.Application.DTOs.Events;
using DMS.Core.Models;
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;
using DMS.Core.Events;
namespace DMS.Application.Services;
///
/// 数据中心服务,负责管理所有的数据,包括设备、变量表、变量、菜单和日志。
/// 实现 接口。
///
public class AppDataCenterService : IAppDataCenterService
{
private readonly IMapper _mapper;
private readonly IRepositoryManager _repositoryManager;
#region 事件定义
///
/// 当设备数据发生变化时触发
///
public event EventHandler DeviceChanged;
///
/// 当变量表数据发生变化时触发
///
public event EventHandler VariableTableChanged;
///
/// 当变量数据发生变化时触发
///
public event EventHandler VariableChanged;
///
/// 当菜单数据发生变化时触发
///
public event EventHandler MenuChanged;
///
/// 当MQTT服务器数据发生变化时触发
///
public event EventHandler MqttServerChanged;
///
/// 当日志数据发生变化时触发
///
public event EventHandler NlogChanged;
///
/// 当变量值发生变化时触发
///
public event EventHandler VariableValueChanged;
#endregion
public AppDataCenterService(
IRepositoryManager repositoryManager,
IMapper mapper,
IDataLoaderService dataLoaderService,
IDeviceManagementService deviceManagementService,
IVariableTableManagementService variableTableManagementService,
IVariableManagementService variableManagementService,
IMenuManagementService menuManagementService,
IMqttManagementService mqttManagementService,
ILogManagementService logManagementService
)
{
_repositoryManager = repositoryManager;
_mapper = mapper;
DataLoaderService = dataLoaderService;
// 初始化管理服务
DeviceManagementService = deviceManagementService;
VariableTableManagementService = variableTableManagementService;
VariableManagementService = variableManagementService;
MenuManagementService = menuManagementService;
MqttManagementService = mqttManagementService;
LogManagementService = logManagementService;
}
public ILogManagementService LogManagementService { get; set; }
public IMqttManagementService MqttManagementService { get; set; }
public IMenuManagementService MenuManagementService { get; set; }
public IVariableManagementService VariableManagementService { get; set; }
public IVariableTableManagementService VariableTableManagementService { get; set; }
public IDeviceManagementService DeviceManagementService { get; set; }
public IDataLoaderService DataLoaderService { get; set; }
}