Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }