public static AttachmentDomain MapToDomainModel(this AttachmentGmail attachment) { return(new AttachmentDomain { Name = attachment.Name, SizeMb = attachment.SizeMb }); }
private EmailGmail CreateEmail(MessagePart emailInfo, long internalDate) { var senderEmail = DataParser.ParseSenderEmail(emailInfo.Headers.FirstOrDefault(header => header.Name == "From").Value); var senderName = String.Empty; if (emailInfo.Headers.Any(header => header.Name == "From")) { senderName = DataParser.ParseSenderName(emailInfo.Headers.FirstOrDefault(header => header.Name == "From").Value); } string subject = String.Empty; if (emailInfo.Headers.Any(header => header.Name == "Subject")) { subject = this.SanitizeContent(emailInfo.Headers.FirstOrDefault(header => header.Name == "Subject").Value); } var dateReceived = DataParser.ParseDate(internalDate); var attachmentsList = new List <AttachmentGmail>(); if (emailInfo.Parts != null) { if (emailInfo.Parts[0].MimeType != "text/plain") { var attachmentsInfoReceived = emailInfo.Parts.Skip(1); foreach (var attachment in attachmentsInfoReceived) { var sizeMb = (double)attachment.Body.Size / (1024 * 1024); var newAttachment = new AttachmentGmail { Name = attachment.Filename, SizeMb = sizeMb }; attachmentsList.Add(newAttachment); } } else if (emailInfo.Parts[1].MimeType == "multipart/related") { var attachmentsInfoReceived = emailInfo.Parts[1].Parts.Skip(1); foreach (var attachment in attachmentsInfoReceived) { var sizeMb = (double)attachment.Body.Size / (1024 * 1024); var newAttachment = new AttachmentGmail { Name = attachment.Filename, SizeMb = sizeMb }; attachmentsList.Add(newAttachment); } } } else { } return(new EmailGmail { Received = dateReceived, SenderEmail = senderEmail, SenderName = senderName, Subject = subject, Attachments = attachmentsList }); }