#if NET using AutoMapper; using DigitalData.MessagingService.Application.EmailSending.Commands; using DigitalData.MessagingService.Application.Common.Dto; using DigitalData.MessagingService.Domain.Entities; using DigitalData.MessagingService.Application.Common.Dto.EmailAccounts; namespace DigitalData.MessagingService.Application.Common.Mappings; /// /// AutoMapper profile for Emails /// public class EmailMappingProfile : Profile { public EmailMappingProfile() { // PublishEmailCommand -> Email // Sender is resolved via MediatR in the handler and set separately after mapping. CreateMap() .ForMember(dest => dest.Sender, opt => opt.Ignore()) .ForMember(dest => dest.Attachments, opt => opt.MapFrom(src => src.Attachments)); // PublishEmailViaImapCommand -> EmailContext CreateMap() .ForMember(dest => dest.Sender, opt => opt.Ignore()) .ForMember(dest => dest.Attachments, opt => opt.MapFrom(src => src.Attachments)); // PublishEmailViaOAuth2Command -> EmailContext CreateMap() .ForMember(dest => dest.Sender, opt => opt.Ignore()) .ForMember(dest => dest.Attachments, opt => opt.MapFrom(src => src.Attachments)); // EmailAccountDto -> EmailAccount CreateMap(); CreateMap(); // ReceivedEmailDto <-> ReceivedEmail CreateMap() .ForMember(dest => dest.Id, opt => opt.Ignore()) .ForMember(dest => dest.Account, opt => opt.Ignore()); CreateMap(); // EmailAttachmentDto <-> EmailAttachment CreateMap() .ForMember(dest => dest.Id, opt => opt.Ignore()) .ForMember(dest => dest.EmailId, opt => opt.Ignore()) .ForMember(dest => dest.Email, opt => opt.Ignore()); CreateMap(); } } #endif