Files
DMS/DMS.Infrastructure/Profiles/MappingProfile.cs

53 lines
1.7 KiB
C#
Raw Normal View History

2025-07-15 22:19:07 +08:00
using System;
using AutoMapper;
using DMS.Infrastructure.Entities;
2025-07-19 09:25:01 +08:00
using DMS.Core.Models;
2025-09-14 19:13:40 +08:00
using DMS.Core.Models.Triggers;
2025-07-15 22:19:07 +08:00
2025-07-19 09:25:01 +08:00
namespace DMS.Infrastructure.Profiles;
2025-07-15 22:19:07 +08:00
/// <summary>
/// AutoMapper 的配置类,用于定义对象之间的映射规则。
/// </summary>
public class MappingProfile : Profile
{
public MappingProfile()
{
// --- 用户映射 ---
// --- 设备映射 (包含List的父对象) ---
// AutoMapper 会自动使用上面的规则来处理 VariableTables 属性
CreateMap<DbDevice, Core.Models.Device>()
2025-07-21 23:04:28 +08:00
.ReverseMap();
2025-07-15 22:19:07 +08:00
// --- 变量表映射 (List中的元素) ---
2025-07-21 23:04:28 +08:00
CreateMap<DbVariableTable, VariableTable>()
.ReverseMap();
2025-07-15 22:19:07 +08:00
CreateMap<DbVariable, Variable>().ReverseMap();
2025-07-15 22:19:07 +08:00
// --- MQTT 和 变量数据 映射 ---
2025-07-21 23:04:28 +08:00
CreateMap<DbMqttServer, MqttServer>()
.ForMember(dest => dest.VariableAliases, opt => opt.Ignore())
.ReverseMap();
CreateMap<DbMqttAlias, MqttAlias>()
2025-07-21 23:04:28 +08:00
.ReverseMap();
2025-07-15 22:19:07 +08:00
CreateMap<DbMenu, MenuBean>().ReverseMap();
2025-09-07 19:48:48 +08:00
CreateMap<DbNlog, Nlog>().ReverseMap();
2025-09-11 09:42:44 +08:00
CreateMap<DbVariableHistory, VariableHistory>().ReverseMap();
2025-09-13 19:08:43 +08:00
CreateMap<DbEmailAccount, EmailAccount>().ReverseMap();
CreateMap<DbEmailMessage, EmailMessage>().ReverseMap();
CreateMap<DbEmailLog, EmailLog>().ReverseMap();
CreateMap<DbEmailTemplate, EmailTemplate>().ReverseMap();
2025-09-14 19:13:40 +08:00
// --- 触发器映射 ---
CreateMap<DbTriggerDefinition, Trigger>()
.ForMember(dest => dest.Variables, opt => opt.Ignore()) // 忽略Variables属性映射因为可能需要特殊处理
.ReverseMap();
2025-07-15 22:19:07 +08:00
}
}