Files
DMS/DMS.Application/Profiles/MappingProfile.cs
David P.G e5e2e8de5b 功能增强:添加 InputDialog 并改进变量管理功能
- 新增 InputDialog 组件:
     - 添加了 InputDialog.xaml 和 InputDialog.xaml.cs 文件
     - 创建了 InputDialogViewModel.cs,继承自 DialogViewModelBase<string?>
     - 实现了可重用的输入对话框,支持自定义标题、消息、标签和占位符

   - 完善变量管理服务:
     - 在 MappingProfile.cs 中添加了 VariableDto 到 VariableDto 的映射配置
     - 在 VariableManagementService.cs 中注入 IMapper 依赖项
     - 修改了 UpdateVariablesAsync 方法,使用 AutoMapper 进行更安全的更新操作

   - 扩展变量表功能:
     - 在 VariableTableViewModel.cs 中添加了 ModifyConversionFormula 命令
     - 实现了批量修改变量转换公式功能,支持用户通过对话框输入新公式
     - 添加了相应的 UI 通知和错误处理
     - 在 VariableTableView.xaml 中添加了"修改数值转换公式"菜单项

   - 集成 InputDialog 到对话框服务:
     - 在 DialogService.cs 中注册了 InputDialogViewModel 和 InputDialog 的映射关系
2025-10-02 18:34:23 +08:00

68 lines
2.3 KiB
C#

using AutoMapper;
using DMS.Core.Models;
using DMS.Application.DTOs;
using DMS.Core.Models.Triggers;
namespace DMS.Application.Profiles;
/// <summary>
/// 配置AutoMapper的映射规则。
/// </summary>
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<Device, DeviceDto>()
.ReverseMap();
// VariableTable 映射
CreateMap<VariableTable, VariableTableDto>().ReverseMap();
// Variable 映射
CreateMap<Variable, VariableDto>()
.ReverseMap();
CreateMap<VariableDto, Variable>()
.ReverseMap();
CreateMap<VariableDto, VariableDto>()
.ReverseMap();
// MqttServer 映射
CreateMap<MqttServer, MqttServerDto>().ReverseMap();
// VariableMqttAlias 映射
CreateMap<VariableMqttAlias, VariableMqttAliasDto>()
.ForMember(dest => dest.MqttServerName, opt => opt.MapFrom(src => src.MqttServer.ServerName))
.ReverseMap();
// VariableHistory 映射
CreateMap<VariableHistory, VariableHistoryDto>()
.ForMember(dest => dest.VariableName, opt => opt.MapFrom(src => src.Variable.Name))
.ReverseMap();
// MenuBean 映射
CreateMap<MenuBean, MenuBeanDto>().ReverseMap();
// User 映射
CreateMap<User, UserDto>().ReverseMap();
CreateMap<Nlog, NlogDto>().ReverseMap();
// 邮件相关映射
CreateMap<EmailAccount, EmailAccountDto>().ReverseMap();
CreateMap<EmailAccount, CreateEmailAccountRequest>().ReverseMap();
CreateMap<EmailMessage, EmailMessageDto>().ReverseMap();
CreateMap<EmailMessage, SendEmailRequest>()
.ForMember(dest => dest.EmailAccountId, opt => opt.MapFrom(src => src.EmailAccountId))
.ReverseMap();
CreateMap<EmailTemplate, EmailTemplateDto>().ReverseMap();
CreateMap<EmailLog, EmailLogDto>().ReverseMap();
CreateMap<TriggerDefinition, TriggerDefinitionDto>()
.ForMember(dest => dest.VariableIds, opt => opt.MapFrom(src => src.VariableIds))
.ReverseMap()
.ForMember(dest => dest.VariableIds, opt => opt.MapFrom(src => src.VariableIds));
}
}