初步重构WPF项目中的DataService和App项目中的DataCenterServicce

This commit is contained in:
2025-09-09 13:35:16 +08:00
parent 84720f1ac4
commit 94ef1dec84
44 changed files with 1618 additions and 307 deletions

View File

@@ -23,7 +23,7 @@ namespace DMS.WPF.Services;
public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, IDisposable
{
private readonly IMapper _mapper;
private readonly IDataCenterService _dataCenterService;
private readonly IAppDataCenterService _appDataCenterService;
private readonly IMqttAppService _mqttAppService;
@@ -121,12 +121,12 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
/// 初始化各个数据仓库。
/// </summary>
/// <param name="mapper">AutoMapper 实例。</param>
/// <param name="dataCenterService">数据服务中心实例。</param>
/// <param name="appDataCenterService">数据服务中心实例。</param>
/// <param name="mqttAppService">MQTT应用服务实例。</param>
public DataServices(IMapper mapper, IDataCenterService dataCenterService, IMqttAppService mqttAppService)
public DataServices(IMapper mapper, IAppDataCenterService appDataCenterService, IMqttAppService mqttAppService)
{
_mapper = mapper;
_dataCenterService = dataCenterService;
_appDataCenterService = appDataCenterService;
_mqttAppService = mqttAppService;
Devices = new ObservableCollection<DeviceItemViewModel>();
VariableTables = new ObservableCollection<VariableTableItemViewModel>();
@@ -137,10 +137,10 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
Nlogs = new ObservableCollection<NlogItemViewModel>();
// 监听变量值变更事件
_dataCenterService.VariableValueChanged += OnVariableValueChanged;
_dataCenterService.OnLoadDataCompleted += OnLoadDataCompleted;
_appDataCenterService.VariableValueChanged += OnVariableValueChanged;
_appDataCenterService.OnLoadDataCompleted += OnLoadDataCompleted;
// 监听日志变更事件
_dataCenterService.NlogChanged += OnNlogChanged;
_appDataCenterService.NlogChanged += OnNlogChanged;
// 注册消息接收
// WeakReferenceMessenger.Register<LoadMessage>(this, (r, m) => r.Receive(m));
@@ -163,7 +163,7 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
private void LoadAllDatas()
{
foreach (var deviceDto in _dataCenterService.Devices.Values)
foreach (var deviceDto in _appDataCenterService.Devices.Values)
{
Devices.Add(_mapper.Map<DeviceItemViewModel>(deviceDto));
}
@@ -179,30 +179,30 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
}
}
Menus = _mapper.Map<ObservableCollection<MenuItemViewModel>>(_dataCenterService.Menus.Values);
Menus = _mapper.Map<ObservableCollection<MenuItemViewModel>>(_appDataCenterService.Menus.Values);
// 加载MQTT服务器数据
MqttServers = _mapper.Map<ObservableCollection<MqttServerItemViewModel>>(_dataCenterService.MqttServers.Values);
MqttServers = _mapper.Map<ObservableCollection<MqttServerItemViewModel>>(_appDataCenterService.MqttServers.Values);
// 加载日志数据
Nlogs = _mapper.Map<ObservableCollection<NlogItemViewModel>>(_dataCenterService.Nlogs.Values);
Nlogs = _mapper.Map<ObservableCollection<NlogItemViewModel>>(_appDataCenterService.Nlogs.Values);
BuildMenuTrees();
}
public async Task<CreateDeviceWithDetailsDto> AddDevice(CreateDeviceWithDetailsDto dto)
{
var addDto = await _dataCenterService.CreateDeviceWithDetailsAsync(dto);
var addDto = await _appDataCenterService.CreateDeviceWithDetailsAsync(dto);
//更新当前界面
Devices.Add(_mapper.Map<DeviceItemViewModel>(addDto.Device));
AddMenuItem(_mapper.Map<MenuItemViewModel>(addDto.DeviceMenu));
await AddVariableTable(addDto.VariableTable);
AddMenuItem(_mapper.Map<MenuItemViewModel>(addDto.VariableTableMenu));
//更新数据中心
_dataCenterService.AddDeviceToMemory(addDto.Device);
_dataCenterService.AddVariableTableToMemory(addDto.VariableTable);
_dataCenterService.AddMenuToMemory(addDto.DeviceMenu);
_dataCenterService.AddMenuToMemory(addDto.VariableTableMenu);
_appDataCenterService.AddDeviceToMemory(addDto.Device);
_appDataCenterService.AddVariableTableToMemory(addDto.VariableTable);
_appDataCenterService.AddMenuToMemory(addDto.DeviceMenu);
_appDataCenterService.AddMenuToMemory(addDto.VariableTableMenu);
BuildMenuTrees();
@@ -213,12 +213,12 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
public async Task<bool> DeleteDevice(DeviceItemViewModel device)
{
if (!await _dataCenterService.DeleteDeviceByIdAsync(device.Id))
if (!await _appDataCenterService.DeleteDeviceByIdAsync(device.Id))
{
return false;
}
_dataCenterService.RemoveDeviceFromMemory(device.Id);
_appDataCenterService.RemoveDeviceFromMemory(device.Id);
// 1. 删除与设备关联的所有变量表及其变量
@@ -242,13 +242,13 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
public async Task<bool> UpdateDevice(DeviceItemViewModel device)
{
if (!_dataCenterService.Devices.TryGetValue(device.Id, out var deviceDto))
if (!_appDataCenterService.Devices.TryGetValue(device.Id, out var deviceDto))
{
return false;
}
_mapper.Map(device, deviceDto);
if (await _dataCenterService.UpdateDeviceAsync(deviceDto) > 0)
if (await _appDataCenterService.UpdateDeviceAsync(deviceDto) > 0)
{
var menu = Menus.FirstOrDefault(m =>
m.MenuType == MenuType.DeviceMenu &&
@@ -275,12 +275,12 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
createDto.VariableTable = variableTableDto;
createDto.DeviceId = variableTableDto.DeviceId;
createDto.Menu = menuDto;
var resDto = await _dataCenterService.CreateVariableTableAsync(createDto);
var resDto = await _appDataCenterService.CreateVariableTableAsync(createDto);
_mapper.Map(resDto.VariableTable, variableTableDto);
AddMenuItem(_mapper.Map<MenuItemViewModel>(resDto.Menu));
}
_dataCenterService.AddVariableTableToMemory(variableTableDto);
_appDataCenterService.AddVariableTableToMemory(variableTableDto);
var device = Devices.FirstOrDefault(d => d.Id == variableTableDto.DeviceId);
if (device != null)
@@ -302,10 +302,10 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
}
var variableTableDto = _mapper.Map<VariableTableDto>(variableTable);
if (await _dataCenterService.UpdateVariableTableAsync(variableTableDto) > 0)
if (await _appDataCenterService.UpdateVariableTableAsync(variableTableDto) > 0)
{
_dataCenterService.UpdateVariableTableInMemory(variableTableDto);
_appDataCenterService.UpdateVariableTableInMemory(variableTableDto);
var menu = Menus.FirstOrDefault(m =>
m.MenuType == MenuType.VariableTableMenu &&
@@ -330,7 +330,7 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
if (isDeleteDb)
{
if (!await _dataCenterService.DeleteVariableTableAsync(variableTable.Id))
if (!await _appDataCenterService.DeleteVariableTableAsync(variableTable.Id))
{
return false;
}
@@ -342,7 +342,7 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
Variables.Remove(variable);
}
_dataCenterService.RemoveVariableTableFromMemory(variableTable.Id);
_appDataCenterService.RemoveVariableTableFromMemory(variableTable.Id);
var variableTableMenu
= Menus.FirstOrDefault(m => m.MenuType == MenuType.VariableTableMenu && m.TargetId == variableTable.Id);
@@ -536,9 +536,9 @@ public partial class DataServices : ObservableObject, IRecipient<LoadMessage>, I
public void Dispose()
{
// 取消事件订阅
if (_dataCenterService != null)
if (_appDataCenterService != null)
{
_dataCenterService.VariableValueChanged -= OnVariableValueChanged;
_appDataCenterService.VariableValueChanged -= OnVariableValueChanged;
}
}
}