refactor: 移除 VariableMqttAliasDto 并替换为 VariableMqttAlias
本次重构移除了 VariableMqttAliasDto,并将其所有用法替换为 VariableMqttAlias 模型。 主要变更: - 在 DTO、服务和接口中将 VariableMqttAliasDto 替换为 VariableMqttAlias。 - 删除了 VariableMqttAliasDto 的 AutoMapper 映射。 - 删除了 VariableMqttAliasDto.cs 文件。
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using DMS.Core.Models;
|
||||||
|
|
||||||
namespace DMS.Application.DTOs;
|
namespace DMS.Application.DTOs;
|
||||||
|
|
||||||
@@ -26,5 +27,5 @@ public class MqttServerDto
|
|||||||
public string MessageHeader { get; set; }
|
public string MessageHeader { get; set; }
|
||||||
public string MessageContent { get; set; }
|
public string MessageContent { get; set; }
|
||||||
public string MessageFooter { get; set; }
|
public string MessageFooter { get; set; }
|
||||||
public List<VariableMqttAliasDto> VariableAliases { get; set; } = new();
|
public List<VariableMqttAlias> VariableAliases { get; set; } = new();
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using DMS.Core.Enums;
|
using DMS.Core.Enums;
|
||||||
|
using DMS.Core.Models;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace DMS.Application.DTOs;
|
namespace DMS.Application.DTOs;
|
||||||
|
|
||||||
@@ -15,7 +17,7 @@ public class VariableDto
|
|||||||
public double NumericValue { get; set; }
|
public double NumericValue { get; set; }
|
||||||
public string DisplayValue { get; set; }
|
public string DisplayValue { get; set; }
|
||||||
public VariableTableDto? VariableTable { get; set; }
|
public VariableTableDto? VariableTable { get; set; }
|
||||||
public List<VariableMqttAliasDto>? MqttAliases { get; set; } = new List<VariableMqttAliasDto>();
|
public List<VariableMqttAlias>? MqttAliases { get; set; } = new List<VariableMqttAlias>();
|
||||||
public SignalType SignalType { get; set; }
|
public SignalType SignalType { get; set; }
|
||||||
public int PollingInterval { get; set; }
|
public int PollingInterval { get; set; }
|
||||||
public bool IsActive { get; set; }
|
public bool IsActive { get; set; }
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
using DMS.Core.Models;
|
|
||||||
|
|
||||||
namespace DMS.Application.DTOs;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 用于在UI上显示和管理变量与MQTT服务器关联别名的DTO。
|
|
||||||
/// </summary>
|
|
||||||
public class VariableMqttAliasDto
|
|
||||||
{
|
|
||||||
public int Id { get; set; }
|
|
||||||
public int VariableId { get; set; }
|
|
||||||
public int MqttServerId { get; set; }
|
|
||||||
public string MqttServerName { get; set; } // 用于UI显示关联的服务器名称
|
|
||||||
public string Alias { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 关联的变量对象。
|
|
||||||
/// </summary>
|
|
||||||
public Variable Variable { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 关联的MQTT服务器对象。
|
|
||||||
/// </summary>
|
|
||||||
public MqttServer MqttServer { get; set; }
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
using DMS.Application.DTOs;
|
using DMS.Core.Models;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DMS.Application.Interfaces.Database;
|
namespace DMS.Application.Interfaces.Database;
|
||||||
|
|
||||||
@@ -10,7 +12,7 @@ public interface IMqttAliasAppService
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步获取指定变量的所有MQTT别名关联。
|
/// 异步获取指定变量的所有MQTT别名关联。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Task<List<VariableMqttAliasDto>> GetAliasesForVariableAsync(int variableId);
|
Task<List<VariableMqttAlias>> GetAliasesForVariableAsync(int variableId);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步为变量分配或更新一个MQTT别名。
|
/// 异步为变量分配或更新一个MQTT别名。
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using DMS.Application.DTOs;
|
using DMS.Application.DTOs;
|
||||||
|
using DMS.Core.Models;
|
||||||
|
|
||||||
namespace DMS.Application.Interfaces;
|
namespace DMS.Application.Interfaces;
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ public interface IAppDataStorageService
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 安全字典,用于存储所有MQTT变量别名的数据
|
/// 安全字典,用于存储所有MQTT变量别名的数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
ConcurrentDictionary<int, VariableMqttAliasDto> VariableMqttAliases { get; }
|
ConcurrentDictionary<int, VariableMqttAlias> VariableMqttAliases { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 安全字典,用于存储所有触发器定义数据
|
/// 安全字典,用于存储所有触发器定义数据
|
||||||
|
|||||||
@@ -31,11 +31,6 @@ public class MappingProfile : Profile
|
|||||||
CreateMap<MqttServer, MqttServerDto>().ReverseMap();
|
CreateMap<MqttServer, MqttServerDto>().ReverseMap();
|
||||||
CreateMap<MqttServerDto, MqttServerDto>().ReverseMap();
|
CreateMap<MqttServerDto, MqttServerDto>().ReverseMap();
|
||||||
|
|
||||||
// VariableMqttAlias 映射
|
|
||||||
CreateMap<VariableMqttAlias, VariableMqttAliasDto>()
|
|
||||||
.ForMember(dest => dest.MqttServerName, opt => opt.MapFrom(src => src.MqttServer.ServerName))
|
|
||||||
.ReverseMap();
|
|
||||||
|
|
||||||
// VariableHistory 映射
|
// VariableHistory 映射
|
||||||
CreateMap<VariableHistory, VariableHistoryDto>()
|
CreateMap<VariableHistory, VariableHistoryDto>()
|
||||||
.ForMember(dest => dest.VariableName, opt => opt.MapFrom(src => src.Variable.Name))
|
.ForMember(dest => dest.VariableName, opt => opt.MapFrom(src => src.Variable.Name))
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
using DMS.Application.DTOs;
|
using DMS.Application.DTOs;
|
||||||
using DMS.Application.Interfaces;
|
using DMS.Application.Interfaces;
|
||||||
|
using DMS.Core.Models;
|
||||||
|
|
||||||
namespace DMS.Application.Services;
|
namespace DMS.Application.Services;
|
||||||
|
|
||||||
@@ -40,7 +41,7 @@ public class AppDataStorageService : IAppDataStorageService
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 安全字典,用于存储所有MQTT变量别名的数据
|
/// 安全字典,用于存储所有MQTT变量别名的数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ConcurrentDictionary<int, VariableMqttAliasDto> VariableMqttAliases { get; } = new();
|
public ConcurrentDictionary<int, VariableMqttAlias> VariableMqttAliases { get; } = new();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -107,24 +107,20 @@ public class DataLoaderService : IDataLoaderService
|
|||||||
{
|
{
|
||||||
|
|
||||||
var variableMqttAliases = await _repositoryManager.VariableMqttAliases.GetAllAsync();
|
var variableMqttAliases = await _repositoryManager.VariableMqttAliases.GetAllAsync();
|
||||||
var variableMqttAliasDtos = _mapper.Map<IEnumerable<VariableMqttAliasDto>>(variableMqttAliases);
|
foreach (var variableMqttAlias in variableMqttAliases)
|
||||||
foreach (var variableMqttAliasDto in variableMqttAliasDtos)
|
|
||||||
{
|
{
|
||||||
_appDataStorageService.VariableMqttAliases.TryAdd(variableMqttAliasDto.Id, variableMqttAliasDto);
|
_appDataStorageService.VariableMqttAliases.TryAdd(variableMqttAlias.Id, variableMqttAlias);
|
||||||
if (_appDataStorageService.Variables.TryGetValue(variableMqttAliasDto.VariableId, out var variable))
|
if (_appDataStorageService.Variables.TryGetValue(variableMqttAlias.VariableId, out var variable))
|
||||||
{
|
{
|
||||||
variableMqttAliasDto.Variable = _mapper.Map<Variable>(variable);
|
variableMqttAlias.Variable = _mapper.Map<Variable>(variable);
|
||||||
variable.MqttAliases?.Add(variableMqttAliasDto);
|
variable.MqttAliases?.Add(variableMqttAlias);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_appDataStorageService.MqttServers.TryGetValue(variableMqttAliasDto.MqttServerId, out var mqttServer))
|
if (_appDataStorageService.MqttServers.TryGetValue(variableMqttAlias.MqttServerId, out var mqttServer))
|
||||||
{
|
{
|
||||||
variableMqttAliasDto.MqttServer = _mapper.Map<MqttServer>(mqttServer);
|
variableMqttAlias.MqttServer = _mapper.Map<MqttServer>(mqttServer);
|
||||||
variableMqttAliasDto.MqttServerName = variableMqttAliasDto.MqttServer.ServerName;
|
mqttServer.VariableAliases?.Add(variableMqttAlias);
|
||||||
mqttServer.VariableAliases?.Add(variableMqttAliasDto);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
using AutoMapper;
|
using AutoMapper;
|
||||||
using DMS.Application.DTOs;
|
|
||||||
using DMS.Application.Interfaces;
|
using DMS.Application.Interfaces;
|
||||||
using DMS.Application.Interfaces.Database;
|
using DMS.Application.Interfaces.Database;
|
||||||
using DMS.Core.Interfaces;
|
using DMS.Core.Interfaces;
|
||||||
|
using DMS.Core.Models;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace DMS.Application.Services.Database;
|
namespace DMS.Application.Services.Database;
|
||||||
|
|
||||||
@@ -26,11 +29,11 @@ public class MqttAliasAppService : IMqttAliasAppService
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异步获取指定变量的所有MQTT别名关联。
|
/// 异步获取指定变量的所有MQTT别名关联。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public async Task<List<VariableMqttAliasDto>> GetAliasesForVariableAsync(int variableId)
|
public async Task<List<VariableMqttAlias>> GetAliasesForVariableAsync(int variableId)
|
||||||
{
|
{
|
||||||
// 从仓储获取别名,并确保加载了关联的MqttServer信息
|
// 从仓储获取别名,并确保加载了关联的MqttServer信息
|
||||||
var aliases = await _repoManager.VariableMqttAliases.GetAliasesForVariableAsync(variableId);
|
var aliases = await _repoManager.VariableMqttAliases.GetAliasesForVariableAsync(variableId);
|
||||||
return _mapper.Map<List<VariableMqttAliasDto>>(aliases);
|
return aliases.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -34,15 +34,14 @@ public class MqttPublishProcessor : IVariableProcessor
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 遍历所有关联的MQTT配置,并将其推入发送队列
|
// 遍历所有关联的MQTT配置,并将其推入发送队列
|
||||||
foreach (var variableMqttAliasDto in variable.MqttAliases)
|
foreach (var variableMqttAlias in variable.MqttAliases)
|
||||||
{
|
{
|
||||||
if (!variableMqttAliasDto.MqttServer.IsActive)
|
if (!variableMqttAlias.MqttServer.IsActive)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发布变量数据到MQTT服务器
|
// 发布变量数据到MQTT服务器
|
||||||
var variableMqttAlias = _mapper.Map<VariableMqttAlias>(variableMqttAliasDto);
|
|
||||||
variableMqttAlias.Variable.DisplayValue=variable.DisplayValue;
|
variableMqttAlias.Variable.DisplayValue=variable.DisplayValue;
|
||||||
await _mqttServiceManager.PublishVariableDataAsync(variableMqttAlias);
|
await _mqttServiceManager.PublishVariableDataAsync(variableMqttAlias);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ namespace DMS.WPF.Profiles
|
|||||||
CreateMap<OpcUaNode, OpcUaNodeItemViewModel>()
|
CreateMap<OpcUaNode, OpcUaNodeItemViewModel>()
|
||||||
.ReverseMap();
|
.ReverseMap();
|
||||||
CreateMap<VariableItemViewModel, VariableItemViewModel>();
|
CreateMap<VariableItemViewModel, VariableItemViewModel>();
|
||||||
CreateMap<VariableMqttAliasDto, VariableMqttAliasItemViewModel>().ReverseMap();
|
|
||||||
CreateMap<VariableMqttAlias, VariableMqttAliasItemViewModel>().ReverseMap();
|
CreateMap<VariableMqttAlias, VariableMqttAliasItemViewModel>().ReverseMap();
|
||||||
|
|
||||||
|
|
||||||
@@ -32,7 +31,6 @@ namespace DMS.WPF.Profiles
|
|||||||
CreateMap<VariableHistoryDto, VariableHistoryItemViewModel>().ReverseMap();
|
CreateMap<VariableHistoryDto, VariableHistoryItemViewModel>().ReverseMap();
|
||||||
CreateMap<VariableDto, VariableItemViewModel>()
|
CreateMap<VariableDto, VariableItemViewModel>()
|
||||||
.ReverseMap();
|
.ReverseMap();
|
||||||
CreateMap<VariableMqttAliasDto, VariableMqttAliasItemViewModel>().ReverseMap();
|
|
||||||
CreateMap<VariableTableDto, VariableTableItemViewModel>().ReverseMap();
|
CreateMap<VariableTableDto, VariableTableItemViewModel>().ReverseMap();
|
||||||
CreateMap<NlogDto, NlogItemViewModel>().ReverseMap();
|
CreateMap<NlogDto, NlogItemViewModel>().ReverseMap();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user