using FLY.Thick.Blowing.IService; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FLY.FeedbackRenZiJia.Server.Model { /// <summary> /// LC 与 DB 类的映射关系, 会在程序入口处, 手动使用 /// var assemblies = System.AppDomain.CurrentDomain.GetAssemblies(); /// var cfg = new MapperConfigurationExpression(); /// cfg.AddMaps(assemblies); /// Mapper.Initialize(cfg); /// /// 枚举全部程序集 中的AutoMapper.Profile 全部加载!!! /// </summary> public class Lc_AutoMapperProfile : AutoMapper.Profile { /// <summary> /// /// </summary> public static AutoMapper.IMapper Mapper; static Lc_AutoMapperProfile() { var cfg = new AutoMapper.Configuration.MapperConfigurationExpression(); cfg.AddProfile<Lc_AutoMapperProfile>(); AutoMapper.MapperConfiguration config = new AutoMapper.MapperConfiguration(cfg); Mapper = new AutoMapper.Mapper(config); } public Lc_AutoMapperProfile() { CreateMap<Lc_ThickHeat, Db_ThickHeat>() .ForMember(s => s.RPeriod, opt => { opt.MapFrom(s => Math.Round(s.RPeriod.TotalMinutes,2)); }) .ForMember(s => s.Thicks, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks)); }) .ForMember(s => s.Boltmap, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Boltmap)); }) .ForMember(s => s.Heats, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Heats)); }) .ReverseMap() .ForMember(s => s.RPeriod, opt => { opt.MapFrom(s => TimeSpan.FromMinutes(s.RPeriod)); }) .ForMember(s => s.Thicks, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks)); }) .ForMember(s => s.Boltmap, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<List<BoltMapCell>>(s.Boltmap)); }) .ForMember(s => s.Heats, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(s.Heats)); }); } } }