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.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                        .Select(torecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = torecipient
             }
         }).ToList(),
         CCRecipients = emailNotificationItemEntity.CC?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                        .Select(ccrecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = ccrecipient
             }
         }).ToList(),
         BCCRecipients = emailNotificationItemEntity.BCC?.Split(Common.ApplicationConstants.SplitCharacter, System.StringSplitOptions.RemoveEmptyEntries)
                         .Select(bccrecipient => new Recipient {
             EmailAddress = new EmailAddress {
                 Address = bccrecipient
             }
         }).ToList(),
         ReplyToRecipients = emailNotificationItemEntity.ReplyTo?.Split(Common.ApplicationConstants.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)
             }
         },
         Importance = (Models.Graph.ImportanceType)Enum.Parse(typeof(Contracts.Models.Graph.ImportanceType), emailNotificationItemEntity.Priority.ToString()),
     });
 }
Exemple #2
0
 /// <summary>
 /// Converts <see cref="EmailNotificationItemEntity"/> to a <see cref="EmailMessage"/>.
 /// </summary>
 /// <param name="meetingNotificationItemEntity">Email Notification Item Entity.</param>
 /// <param name="body">Message Bosy.</param>
 /// <returns><see cref="EmailMessage"/>.</returns>
 public static MeetingInviteMessage ToMeetingInviteReportMessage(this MeetingNotificationItemEntity meetingNotificationItemEntity, MessageBody body)
 {
     return(meetingNotificationItemEntity != null ?
            new MeetingInviteMessage()
     {
         Subject = meetingNotificationItemEntity.Subject,
         Body = body?.Content,
         RequiredAttendees = meetingNotificationItemEntity.RequiredAttendees,
         Application = meetingNotificationItemEntity.Application,
         From = meetingNotificationItemEntity.From,
         NotificationId = meetingNotificationItemEntity.NotificationId,
         OptionalAttendees = meetingNotificationItemEntity.OptionalAttendees,
         Attachments = meetingNotificationItemEntity.Attachments?.Select(attachment => new FileAttachment
         {
             Name = attachment.FileName, ContentBytes = attachment.FileBase64, IsInline = attachment.IsInline
         }).ToList(),
     }
         : null);
 }
Exemple #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.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()),
     });
 }
Exemple #4
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 #5
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(),
     });
 }