using AutoMapper; using Kean.Domain.Task.Commands; using Kean.Domain.Task.Events; using Kean.Domain.Task.Models; namespace Kean.Domain.Task { /// <summary> /// 模型映射配置 /// </summary> public class AutoMapper : Profile { /// <summary> /// 初始化 Kean.Domain.Task.AutoMapper 类的新实例 /// </summary> public AutoMapper() { AllowNullCollections = true; ShouldMapProperty = property => property.GetMethod.IsPublic || property.GetMethod.IsAssembly; CreateMap<Spec, int?>() .ConvertUsing(type => (int?)type); CreateMap<InfeedCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<InfeedCommand, InfeedExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<InfeedCommand, InfeedSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<OutfeedCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<OutfeedCommand, OutfeedExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<OutfeedCommand, OutfeedSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<TransferCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<TransferCommand, TransferExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<TransferCommand, TransferSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<BypassCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<BypassCommand, BypassExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<BypassCommand, BypassSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<Models.Task, InfeedCommand>(); CreateMap<Models.Task, OutfeedCommand>(); CreateMap<Models.Task, TransferCommand>(); CreateMap<Models.Task, BypassCommand>(); CreateMap<Models.Task, CancelSuccessEvent>() .ForMember(@event => @event.Created, options => options.MapFrom(model => model.Timestamp)); CreateMap<Models.Task, CompleteSuccessEvent>() .ForMember(@event => @event.Created, options => options.MapFrom(model => model.Timestamp)); ///////////////////////////////////////////////////////////////// CreateMap<ApplyOutCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<ApplyOutCommand, ApplyOutExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<ApplyOutCommand, ApplyOutSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<Models.Task, ApplyOutCommand>(); CreateMap<PalletOutCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<PalletOutCommand, PalletOutExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<PalletOutCommand, PalletOutSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<Models.Task, PalletOutCommand>(); CreateMap<DirectOutboundCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<DirectOutboundCommand, DirectOutboundExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<DirectOutboundCommand, DirectOutboundSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<Models.Task, DirectOutboundCommand>(); CreateMap<BypassHithumCommand, Models.Task>(); CreateMap<BypassHithumCommand, BypassHithumExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<BypassHithumCommand, BypassHithumSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<BypassEmptyCommand, Models.Task>(); CreateMap<BypassEmptyCommand, BypassEmptyExecutingEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<BypassEmptyCommand, BypassEmptySuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); CreateMap<InfeedCheckCommand, Models.Task>() .ForMember(model => model.Original, options => options.Ignore()) .ForMember(model => model.Destination, options => options.Ignore()); CreateMap<InfeedCheckCommand, InfeedCheckSuccessEvent>() .ForMember(@event => @event.Original, options => options.Ignore()) .ForMember(@event => @event.Destination, options => options.Ignore()); } } }