/// <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) } }, }); }
/// <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); }
/// <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, };
/// <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(), }); }
/// <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); }