Example #1
0
        /// <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>();
        }
Example #2
0
 /// <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()),
     });
 }
Example #3
0
 /// <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(),
     });
 }