コード例 #1
0
        public void ProcessRequest(HttpContext context)
        {
            int userId = 0;

            try
            {
                HttpFileCollection  files = context.Request.Files;
                HttpPostedFile      f     = null;
                TemporaryAttachment ta    = null;

                userId = int.Parse(context.Request["uid"]);
                for (int i = 0; i < files.Count; i++)
                {
                    f  = files[i];
                    ta = new TemporaryAttachment();
                    ta.FriendlyFileName = f.FileName;
                    ta.AttachmentID     = Guid.NewGuid();
                    ta.FileName         = f.FileName;
                    ta.DisplayOrder     = 100;
                    ta.AttachmentType   = AttachmentType.ProductPhoto;
                    ta.UserID           = userId;
                    TemporaryAttachments.Create(ta, f.InputStream);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #2
0
        public static TemporaryAttachment PopulateTemporaryAttachmentFromIDataReader(IDataReader dr)
        {
            TemporaryAttachment temporaryAttachment = new TemporaryAttachment();

            temporaryAttachment.AttachmentID     = DataRecordHelper.GetGuid(dr, "AttachmentID");
            temporaryAttachment.UserID           = DataRecordHelper.GetInt32(dr, "UserID");
            temporaryAttachment.AttachmentType   = (AttachmentType)DataRecordHelper.GetInt32(dr, "AttachmentType");
            temporaryAttachment.FileName         = DataRecordHelper.GetString(dr, "FileName");
            temporaryAttachment.FriendlyFileName = DataRecordHelper.GetString(dr, "FriendlyFileName");
            temporaryAttachment.ContentType      = DataRecordHelper.GetString(dr, "ContentType");
            temporaryAttachment.ContentSize      = DataRecordHelper.GetInt64(dr, "ContentSize");
            temporaryAttachment.Height           = DataRecordHelper.GetInt32(dr, "Height");
            temporaryAttachment.Width            = DataRecordHelper.GetInt32(dr, "Width");
            temporaryAttachment.DisplayOrder     = DataRecordHelper.GetInt32(dr, "DisplayOrder");
            return(temporaryAttachment);
        }
コード例 #3
0
 public abstract void CreateUpdateTemporaryAttachment(TemporaryAttachment attachment, DataProviderAction action);
コード例 #4
0
        /// <summary>
        /// Forwards the email to the relay email address.
        /// </summary>
        /// <param name="mimeMessage">The MIME message.</param>
        public void ForwardEmail(MimeMessage mimeMessage)
        {
            Metadata metadata = MetadataFactory.GenerateFrom(mimeMessage);
            // Add tags to the subject
            string      subject    = mimeMessage.Subject;
            IEmailEntry emailEntry = emailEntryCache.Get(toCache.Get(mimeMessage));

            if (!string.IsNullOrEmpty(emailEntry?.Tag))
            {
                metadata.Tag = emailEntry.Tag;
                subject      = $"[{emailEntry.Tag}] {subject}";
            }

            Email email = new Email(
                new System.Net.Mail.MailAddress(_options.GetSender()),
                new System.Net.Mail.MailAddress(_options.RelayEmail))
            {
                Subject = subject,
            };

            foreach (MimeEntity mimeEntity in mimeMessage.BodyParts)
            {
                if (mimeEntity.IsAttachment)
                {
                    if (!(mimeEntity is MimePart mimePart))
                    {
                        continue;
                    }

                    Attachment temporaryAttachment;
                    using (MemoryStream memoryStream = new MemoryStream())
                    {
                        mimePart.Content.DecodeTo(memoryStream);
                        memoryStream.Seek(0, SeekOrigin.Begin);

                        temporaryAttachment = new TemporaryAttachment(memoryStream)
                        {
                            DisplayFileName = mimePart.FileName,
                            ContentType     = mimePart.ContentType.MimeType,
                            Encoding        = mimePart.ContentTransferEncoding.GetRaw(),
                        };
                    }

                    email.Attachments.Add(temporaryAttachment);
                }
                else if (mimeEntity is TextPart textPart)
                {
                    string text = textPart.Text;
                    if (textPart.ContentType.MimeType == Constants.TextMimeType)
                    {
                        text = MetadataSerializer.SerializeForText(metadata, text);
                    }
                    else if (textPart.ContentType.MimeType == Constants.HtmlMimeType)
                    {
                        text = MetadataSerializer.SerializeForHtml(metadata, text);
                    }

                    email.TextContents.Add(
                        new Text()
                    {
                        RawText  = text,
                        MimeType = textPart.ContentType.MimeType,
                        Charset  = textPart.ContentType.Charset,
                    });
                }
            }

            _sender.SendEmail(email);

            emailEntryCache.Clear();
            toCache.Clear();
        }