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