using System; using AutoMapper; using DMS.Infrastructure.Entities; using DMS.Core.Models; using DMS.Core.Models.Triggers; namespace DMS.Infrastructure.Profiles; /// /// AutoMapper 的配置类,用于定义对象之间的映射规则。 /// public class MappingProfile : Profile { public MappingProfile() { // --- 用户映射 --- // --- 设备映射 (包含List的父对象) --- // AutoMapper 会自动使用上面的规则来处理 VariableTables 属性 CreateMap() .ReverseMap(); // --- 变量表映射 (List中的元素) --- CreateMap() .ReverseMap(); CreateMap().ReverseMap(); // --- MQTT 和 变量数据 映射 --- CreateMap() .ForMember(dest => dest.VariableAliases, opt => opt.Ignore()) .ReverseMap(); CreateMap() .ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); // --- 触发器映射 --- CreateMap() .ForMember(dest => dest.SuppressionDuration, opt => opt.MapFrom(src => src.SuppressionDurationTicks.HasValue ? TimeSpan.FromTicks(src.SuppressionDurationTicks.Value) : (TimeSpan?)null)) .ReverseMap() .ForMember(dest => dest.SuppressionDurationTicks, opt => opt.MapFrom(src => src.SuppressionDuration.HasValue ? src.SuppressionDuration.Value.Ticks : (long?)null)); } }