using FLY.Thick.Blowing.IService; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FLY.Thick.Blowing.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); } /// <summary> /// /// </summary> public Lc_AutoMapperProfile() { CreateMap<Lc_ScanData, Db_ScanData>() .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)); }) .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)); }); CreateMap<RenZiJiaDataEventArgs, Lc_ScanData>(); CreateMap<Lc_TrendData, Db_TrendData>() .ForMember(s => s.Thicks, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.Thicks)); }) .ReverseMap() .ForMember(s => s.Thicks, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<double[]>(s.Thicks)); }) ; CreateMap<Lc_Sample, Db_Sample>() .ForMember(s => s.SampleADs, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.SerializeObject(s.SampleADs)); }) .ReverseMap() .ForMember(s => s.SampleADs, opt => { opt.MapFrom(s => Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(s.SampleADs)); }); } } }