private IEnumerable <FileAttachement> ParseFileAttachements(IEnumerable <FileUploadViewModel> fileUploadViews) { IList <FileAttachement> attachements = new List <FileAttachement>(); if (fileUploadViews == null) { return(null); } fileUploadViews.Each((p) => { var attach = new FileAttachement() { Id = p.id, Serial = p.serial, FileName = p.fileName, Comment = p.description, Name = p.name }; attachements.Add(attach); }); return(attachements); }
/// <summary> /// Save email's data into database /// </summary> /// <param name="item">The email message item</param> /// <returns>The email item</returns> protected EmailItem SaveEmail(EmailMessage item) { if (item == null) { return(null); } using (var context = new WorkflowContext()) { if (context.Database.SqlQuery <int>(string.Format("SELECT TOP 1 1 FROM EMAIL.MAIL_ITEM WHERE UNIQUE_IDENTIFIER = '{0}' COLLATE Latin1_General_CS_AS ", item.Id.UniqueId)).Count() == 0) { var emailitem = new EmailItem(); emailitem.Body = InlineImageUtil.GetHTMLWithInlineImage(item); emailitem.Cc = GetEmailName(item.CcRecipients); emailitem.Originator = item.From.Address; emailitem.Subject = string.IsNullOrEmpty(item.Subject) ? "No Subject" : item.Subject; emailitem.UniqueIdentifier = item.Id.UniqueId; emailitem.Status = EMAIL_STATUS; emailitem.CreatedDate = DateTime.Now; emailitem.Receipient = GetEmailName(item.ToRecipients); emailitem.FileAttachements = new List <FileAttachement>(); if (item.HasAttachments) { foreach (var att in item.Attachments) { att.Load(); if (att.IsInline) { continue; } FileAttachment fileAtt = att as FileAttachment; if (fileAtt != null) { MemoryStream memoryStream = new MemoryStream(); var fileAttachement = new FileAttachement(); fileAttachement.FileName = att.Name; fileAttachement.Ext = Path.GetExtension(att.Name).Replace(".", ""); fileAttachement.CreatedDate = DateTime.Now; fileAtt.Load(memoryStream); fileAttachement.DataContent = memoryStream != null?memoryStream.ToArray() : null; emailitem.FileAttachements.Add(fileAttachement); } } } if (emailitem.FileAttachements.Count == 0) { emailitem.FileAttachements = null; } context.EmailItems.Add(emailitem); if (context.ChangeTracker.HasChanges()) { context.SaveChanges(); } _Logger.Info(emailitem); return(emailitem); } } item.IsRead = true; item.Update(ConflictResolutionMode.AlwaysOverwrite); return(null); }