using AutoMapper; using Win_in.Sfs.Label.Domain.Shared; namespace Win_in.Sfs.Label.Application; public static class LabelCommonMapperExtensions { public static IMappingExpression MapPurchaseInfo( this IMappingExpression m) where TSource : IHasPurchaseInfo where TDestination : IHasPurchaseInfoDto { return m .ForMember(dest => dest.SupplierCode, opts => opts.MapFrom(src => src.PurchaseInfo.SupplierCode)) .ForMember(dest => dest.PoNumber, opts => opts.MapFrom(src => src.PurchaseInfo.PoNumber)) .ForMember(dest => dest.RpNumber, opts => opts.MapFrom(src => src.PurchaseInfo.RpNumber)) .ForMember(dest => dest.AsnNumber, opts => opts.MapFrom(src => src.PurchaseInfo.AsnNumber)) ; } public static IMappingExpression MapProductionInfo( this IMappingExpression m) where TSource : IHasProductionInfo where TDestination : IHasProductionInfoDto { return m .ForMember(dest => dest.ProdLine, opts => opts.MapFrom(src => src.ProductionInfo.ProdLine)) .ForMember(dest => dest.Team, opts => opts.MapFrom(src => src.ProductionInfo.Team)) .ForMember(dest => dest.Shift, opts => opts.MapFrom(src => src.ProductionInfo.Shift)) ; } public static IMappingExpression MapPurchaseInfoDto( this IMappingExpression m) where TSource : IHasPurchaseInfoDto where TDestination : IHasPurchaseInfo { return m .ForMember(dest => dest.PurchaseInfo, opts => opts.MapFrom(src => new PurchaseInfo(src.SupplierCode, src.PoNumber, src.RpNumber, src.AsnNumber))) ; } public static IMappingExpression MapProductionInfoDto( this IMappingExpression m) where TSource : IHasProductionInfoDto where TDestination : IHasProductionInfo { return m .ForMember(dest => dest.ProductionInfo, opts => opts.MapFrom(src => new ProductionInfo(src.ProdLine, src.Team, src.Shift))) ; } public static IMappingExpression MapQualityInfo( this IMappingExpression m) where TSource : IHasQualityInfo where TDestination : IHasQualityInfoDto { return m .ForMember(dest => dest.QLevel, opts => opts.MapFrom(src => src.QualityInfo.QLevel)) .ForMember(dest => dest.QualityFile, opts => opts.MapFrom(src => src.QualityInfo.QualityFile)) ; } public static IMappingExpression MapQualityInfoDto( this IMappingExpression m) where TSource : IHasQualityInfoDto where TDestination : IHasQualityInfo { return m .ForMember(dest => dest.QualityInfo, opts => opts.MapFrom(src => new QualityInfo(src.QLevel, src.QualityFile))) ; } }