Files
DMS/DMS.Infrastructure/Profiles/MappingProfile.cs
2025-10-20 12:36:33 +08:00

54 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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