Exemple #1
0
 /// <summary>
 /// Converts <see cref="EmailNotificationItemEntity"/> to a <see cref="EmailMessage"/>.
 /// </summary>
 /// <param name="emailNotificationItemEntity">Email Notification Item Entity.</param>
 /// <param name="body">Message Bosy.</param>
 /// <returns><see cref="EmailMessage"/>.</returns>
 public static EmailMessage ToGraphEmailMessage(this EmailNotificationItemEntity emailNotificationItemEntity, MessageBody body)
 {
     return(new EmailMessage()
     {
         Subject = emailNotificationItemEntity?.Subject,
         Body = body,
         ToRecipients = emailNotificationItemEntity.To.Split(Common.Constants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                        .Select(torecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = torecipient
             }
         }).ToList(),
         CCRecipients = emailNotificationItemEntity.CC?.Split(Common.Constants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                        .Select(ccrecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = ccrecipient
             }
         }).ToList(),
         BCCRecipients = emailNotificationItemEntity.BCC?.Split(Common.Constants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                         .Select(bccrecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = bccrecipient
             }
         }).ToList(),
         ReplyToRecipients = emailNotificationItemEntity.ReplyTo?.Split(Common.Constants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                             .Select(reploytorecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = reploytorecipient
             }
         }).ToList(),
         Attachments = emailNotificationItemEntity.Attachments?.Select(attachment => new FileAttachment
         {
             Name = attachment.FileName, ContentBytes = attachment.FileBase64, IsInline = attachment.IsInline
         }).ToList(),
         FromAccount = !string.IsNullOrWhiteSpace(emailNotificationItemEntity.From) ? new Recipient()
         {
             EmailAddress = new EmailAddress()
             {
                 Address = emailNotificationItemEntity.From
             }
         } : null,
         SingleValueExtendedProperties = new List <SingleValueExtendedProperty> {
             new SingleValueExtendedProperty {
                 Id = "SystemTime 0x3FEF", Value = emailNotificationItemEntity.SendOnUtcDate.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture)
             }
         },
     });
 }
Exemple #2
0
        /// <summary>
        /// Converts to SmtpEmailmessage.
        /// </summary>
        /// <param name="emailNotificationItemEntity">The email notification item entity.</param>
        /// <param name="body">The body.</param>
        /// <returns>A <see cref="MailMessage"/>.</returns>
        public static MailMessage ToSmtpMailMessage(this EmailNotificationItemEntity emailNotificationItemEntity, MessageBody body)
        {
            if (emailNotificationItemEntity is null)
            {
                return(null);
            }

            MailMessage message = new MailMessage();

            message.Subject = emailNotificationItemEntity?.Subject;
            message.From    = !string.IsNullOrWhiteSpace(emailNotificationItemEntity.From) ? new MailAddress(emailNotificationItemEntity?.From) : null;
            message.Body    = body?.Content;
            if (!string.IsNullOrWhiteSpace(emailNotificationItemEntity.To))
            {
                message.To.Add(string.Join(",", emailNotificationItemEntity.To?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries).ToList()));
            }

            if (!string.IsNullOrWhiteSpace(emailNotificationItemEntity.CC))
            {
                message.CC.Add(string.Join(",", emailNotificationItemEntity.CC?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries).ToList()));
            }

            if (!string.IsNullOrWhiteSpace(emailNotificationItemEntity.BCC))
            {
                message.Bcc.Add(string.Join(",", emailNotificationItemEntity.BCC?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries).ToList()));
            }

            if (!string.IsNullOrWhiteSpace(emailNotificationItemEntity.ReplyTo))
            {
                message.ReplyToList.Add(string.Join(",", emailNotificationItemEntity.ReplyTo?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries).ToList()));
            }

            foreach (var a in emailNotificationItemEntity.Attachments)
            {
                var at = new System.Net.Mail.Attachment(new MemoryStream(Convert.FromBase64String(a.FileBase64)), a.FileName);
                at.ContentDisposition.Inline = a.IsInline;
                message.Attachments.Add(at);
            }

            message.Priority = (MailPriority)Enum.Parse(typeof(MailPriority), emailNotificationItemEntity.Priority.ToString());

            return(message);
        }
Exemple #3
0
 /// <summary>
 /// Converts <see cref="EmailNotificationItemEntity"/> to a <see cref="NotificationReportResponse"/>.
 /// </summary>
 /// <param name="emailNotificationItemEntity">Email Notification Item Entity.</param>
 /// <returns><see cref="NotificationReportResponse"/>.</returns>
 public static NotificationReportResponse ToNotificationReportResponse(EmailNotificationItemEntity emailNotificationItemEntity) => new NotificationReportResponse()
 {
     NotificationId   = emailNotificationItemEntity?.NotificationId,
     Application      = emailNotificationItemEntity?.Application,
     EmailAccountUsed = emailNotificationItemEntity?.EmailAccountUsed,
     NotifyType       = emailNotificationItemEntity?.NotifyType.ToString(),
     Status           = emailNotificationItemEntity?.Status.ToString(),
     Priority         = emailNotificationItemEntity?.Priority.ToString(),
     Sensitivity      = emailNotificationItemEntity?.Sensitivity.ToString(),
     ErrorMessage     = emailNotificationItemEntity?.ErrorMessage,
     TryCount         = emailNotificationItemEntity?.TryCount ?? 0,
     SendOnUtcDate    = emailNotificationItemEntity?.SendOnUtcDate ?? DateTime.MinValue,
     CreatedDateTime  = emailNotificationItemEntity?.CreatedDateTime ?? DateTime.MinValue,
     UpdatedDateTime  = emailNotificationItemEntity?.UpdatedDateTime ?? DateTime.MinValue,
     To         = emailNotificationItemEntity?.To,
     From       = emailNotificationItemEntity?.From,
     CC         = emailNotificationItemEntity?.CC,
     BCC        = emailNotificationItemEntity?.BCC,
     ReplyTo    = emailNotificationItemEntity?.ReplyTo,
     Subject    = emailNotificationItemEntity?.Subject,
     TrackingId = emailNotificationItemEntity?.TrackingId,
 };
Exemple #4
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(),
     });
 }
Exemple #5
0
        /// <summary>
        /// Converts <see cref="EmailNotificationItemEntity"/> to a <see cref="EmailNotificationItemCosmosDbEntity"/>.
        /// </summary>
        /// <param name="emailNotificationItemEntity">Email Notification Item Entity.</param>
        /// <returns><see cref="EmailNotificationItemCosmosDbEntity"/>.</returns>
        public static EmailNotificationItemCosmosDbEntity ConvertToEmailNotificationItemCosmosDbEntity(this EmailNotificationItemEntity emailNotificationItemEntity)
        {
            if (emailNotificationItemEntity is null)
            {
                return(null);
            }

            EmailNotificationItemCosmosDbEntity emailNotificationItemTableEntity = new EmailNotificationItemCosmosDbEntity();

            emailNotificationItemTableEntity.PartitionKey     = emailNotificationItemEntity.Application;
            emailNotificationItemTableEntity.RowKey           = emailNotificationItemEntity.NotificationId;
            emailNotificationItemTableEntity.Id               = emailNotificationItemEntity.Id;
            emailNotificationItemTableEntity.Application      = emailNotificationItemEntity.Application;
            emailNotificationItemTableEntity.BCC              = emailNotificationItemEntity.BCC;
            emailNotificationItemTableEntity.CC               = emailNotificationItemEntity.CC;
            emailNotificationItemTableEntity.EmailAccountUsed = emailNotificationItemEntity.EmailAccountUsed;
            emailNotificationItemTableEntity.ErrorMessage     = emailNotificationItemEntity.ErrorMessage;
            emailNotificationItemTableEntity.From             = emailNotificationItemEntity.From;
            emailNotificationItemTableEntity.NotificationId   = emailNotificationItemEntity.NotificationId;
            emailNotificationItemTableEntity.Priority         = emailNotificationItemEntity.Priority.ToString();
            emailNotificationItemTableEntity.ReplyTo          = emailNotificationItemEntity.ReplyTo;
            emailNotificationItemTableEntity.Sensitivity      = emailNotificationItemEntity.Sensitivity;
            emailNotificationItemTableEntity.Status           = emailNotificationItemEntity.Status.ToString();
            emailNotificationItemTableEntity.Subject          = emailNotificationItemEntity.Subject;
            emailNotificationItemTableEntity.TemplateId       = emailNotificationItemEntity.TemplateId;
            emailNotificationItemTableEntity.Timestamp        = emailNotificationItemEntity.Timestamp;
            emailNotificationItemTableEntity.To               = emailNotificationItemEntity.To;
            emailNotificationItemTableEntity.TrackingId       = emailNotificationItemEntity.TrackingId;
            emailNotificationItemTableEntity.TryCount         = emailNotificationItemEntity.TryCount;
            emailNotificationItemTableEntity.ETag             = emailNotificationItemEntity.ETag;
            emailNotificationItemTableEntity.SendOnUtcDate    = emailNotificationItemEntity.SendOnUtcDate;
            return(emailNotificationItemTableEntity);
        }