/// <summary> /// Initializes a new instance of the <see cref="DirectSendNotificationProvider"/> class. /// </summary> /// <param name="configuration"> Instance of <see cref="IConfiguration"/>. </param> /// <param name="mailService">Instance of <see cref="IEmailService"/>.</param> /// <param name="logger">Instance of <see cref="ILogger"/>.</param> /// <param name="emailManager">Instance of <see cref="IEmailManager"/>.</param> public DirectSendNotificationProvider( IConfiguration configuration, IEmailService mailService, ILogger logger, IEmailManager emailManager) { this.configuration = configuration; this.mailService = mailService; this.logger = logger; if (this.configuration?["MailSettings"] != null) { this.mailSettings = JsonConvert.DeserializeObject <List <MailSettings> >(this.configuration?["MailSettings"]); } this.emailManager = emailManager; this.directSendSetting = this.configuration.GetSection("DirectSendSetting").Get <DirectSendSetting>(); }
/// <summary> /// Converts to directsendemailmessage. /// </summary> /// <param name="emailNotificationItemEntity">The email notification item entity.</param> /// <param name="body">The body.</param> /// <param name="directSendSetting">The direct send setting.</param> /// <returns>A <see cref="EmailMessage"/>.</returns> public static DirectSend.Models.Mail.EmailMessage ToDirectSendEmailMessage(this EmailNotificationItemEntity emailNotificationItemEntity, MessageBody body, DirectSendSetting directSendSetting) { return(new DirectSend.Models.Mail.EmailMessage() { Subject = emailNotificationItemEntity?.Subject, Content = body?.Content, ToAddresses = emailNotificationItemEntity.To?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries) .Select(torecipient => new DirectSend.Models.Mail.EmailAddress { Address = torecipient }).ToList(), CcAddresses = emailNotificationItemEntity.CC?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries) .Select(ccrecipient => new DirectSend.Models.Mail.EmailAddress { Address = ccrecipient }).ToList(), ReplyTo = emailNotificationItemEntity.ReplyTo?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries) .Select(replyTo => new DirectSend.Models.Mail.EmailAddress { Address = replyTo }).ToList(), FromAddresses = new List <DirectSend.Models.Mail.EmailAddress> { (emailNotificationItemEntity.From == directSendSetting?.FromAddress2) ? new DirectSend.Models.Mail.EmailAddress { Name = directSendSetting?.FromAddress2DisplayName, Address = directSendSetting?.FromAddress2 } : new DirectSend.Models.Mail.EmailAddress { Name = directSendSetting?.FromAddressDisplayName, Address = directSendSetting?.FromAddress }, }, FileName = emailNotificationItemEntity.Attachments?.Select(attachment => attachment.FileName).ToList(), FileContent = emailNotificationItemEntity.Attachments?.Select(attachment => attachment.FileBase64).ToList(), Importance = (DirectSend.Models.Mail.EmailMessage.ImportanceType)Enum.Parse(typeof(DirectSend.Models.Mail.EmailMessage.ImportanceType), emailNotificationItemEntity.Priority.ToString()), }); }
/// <summary> /// Converts to directsendemailmessage. /// </summary> /// <param name="emailNotificationItemEntity">The email notification item entity.</param> /// <param name="body">The body.</param> /// <param name="directSendSetting">The direct send setting.</param> /// <returns>A <see cref="EmailMessage"/>.</returns> public static DirectSend.Models.Mail.EmailMessage ToDirectSendEmailMessage(this EmailNotificationItemEntity emailNotificationItemEntity, MessageBody body, DirectSendSetting directSendSetting) { return(new DirectSend.Models.Mail.EmailMessage() { Subject = emailNotificationItemEntity?.Subject, Content = body?.Content, ToAddresses = emailNotificationItemEntity.To?.Split(Common.Constants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries) .Select(torecipient => new DirectSend.Models.Mail.EmailAddress { Address = torecipient }).ToList(), CcAddresses = emailNotificationItemEntity.CC?.Split(Common.Constants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries) .Select(ccrecipient => new DirectSend.Models.Mail.EmailAddress { Address = ccrecipient }).ToList(), FromAddresses = new List <DirectSend.Models.Mail.EmailAddress> { new DirectSend.Models.Mail.EmailAddress { Name = directSendSetting?.FromAddressDisplayName, Address = directSendSetting?.FromAddress } }, FileName = emailNotificationItemEntity.Attachments?.Select(attachment => attachment.FileName).ToList(), FileContent = emailNotificationItemEntity.Attachments?.Select(attachment => attachment.FileBase64).ToList(), }); }