/// <summary> /// Helper function /// </summary> public static Email FromEntity(EmailForSave e, int tenantId) { return(new Email(e.ToEmail) { EmailId = e.Id, Subject = e.Subject, Body = e.Body, TenantId = tenantId }); }
/// <summary> /// Helper function. /// </summary> public static (EmailForSave result, IEnumerable <(string name, byte[] content)> blobs) ToEntity(EmailToSend emailToSend) { var blobCount = 1 + emailToSend.Attachments.Count(); // To make sliiightly faster var blobs = new List <(string name, byte[] content)>(blobCount); string bodyBlobId = null; if (!string.IsNullOrWhiteSpace(emailToSend.Body)) { bodyBlobId = Guid.NewGuid().ToString(); var bodyBlobName = EmailUtil.EmailBodyBlobName(bodyBlobId); var bodyBlobContent = Encoding.UTF8.GetBytes(emailToSend.Body); blobs.Add((bodyBlobName, bodyBlobContent)); } var emailForSave = new EmailForSave { To = string.Join(';', emailToSend.To ?? new List <string>()), Cc = string.Join(';', emailToSend.Cc ?? new List <string>()), Bcc = string.Join(';', emailToSend.Bcc ?? new List <string>()), Subject = emailToSend.Subject, BodyBlobId = bodyBlobId, Id = emailToSend.EmailId, State = EmailState.Scheduled, Attachments = new List <EmailAttachmentForSave>() }; if (emailToSend.Attachments != null) { foreach (var att in emailToSend.Attachments) { // If there is no content, then don't add the attachment var contentBlobContent = att.Contents; string contentBlobId = null; if (contentBlobContent != null && contentBlobContent.Length > 0) { contentBlobId = Guid.NewGuid().ToString(); var contentBlobName = EmailUtil.EmailAttachmentBlobName(contentBlobId); blobs.Add((contentBlobName, contentBlobContent)); } emailForSave.Attachments.Add(new EmailAttachmentForSave { Name = att.Name, ContentBlobId = contentBlobId }); } } return(emailForSave, blobs); }