Beispiel #1
0
        /// <summary>
        /// Serializable Mail Message Contstructor
        /// </summary>
        /// <param name="mailMessage">Original Mail Message to be serialized</param>
        public SerializableMailMessage(MailMessage mailMessage)
        {
            MailID              = Guid.NewGuid().ToString();
            this.IsBodyHtml     = mailMessage.IsBodyHtml;
            this.Body           = mailMessage.Body;
            this.Subject        = mailMessage.Subject;
            this.SerializedFrom = SerializableMailAddress.GetSerializableMailAddress(mailMessage.From);

            this.serializedTo = new List <SerializableMailAddress>();
            foreach (var ma in mailMessage.To)
            {
                this.serializedTo.Add(SerializableMailAddress.GetSerializableMailAddress(ma));
            }

            this.serializedBcc = new List <SerializableMailAddress>();
            foreach (var ma in mailMessage.Bcc)
            {
                this.serializedBcc.Add(SerializableMailAddress.GetSerializableMailAddress(ma));
            }

            this.serializedCC = new List <SerializableMailAddress>();
            foreach (var ma in mailMessage.CC)
            {
                this.serializedCC.Add(SerializableMailAddress.GetSerializableMailAddress(ma));
            }

            this.serializedReplyTo = new List <SerializableMailAddress>();
            foreach (var ma in mailMessage.ReplyToList)
            {
                this.serializedReplyTo.Add(SerializableMailAddress.GetSerializableMailAddress(ma));
            }

            this.serializedAttachments = new List <SerializableAttachment>();
            foreach (var att in mailMessage.Attachments)
            {
                this.serializedAttachments.Add(SerializableAttachment.GetSerializeableAttachment(att));
            }

            this.bodyEncoding = mailMessage.BodyEncoding;

            this.serializedDeliveryNotificationOptions = mailMessage.DeliveryNotificationOptions;
            this.serializedHeaders = SerializableCollection.GetSerializableCollection(mailMessage.Headers);
            this.mailPriority      = mailMessage.Priority;
            this.SerializedSender  = SerializableMailAddress.GetSerializableMailAddress(mailMessage.Sender);
            this.subjectEncoding   = mailMessage.SubjectEncoding;

            foreach (var av in mailMessage.AlternateViews)
            {
                this.serializedAlternateViews.Add(SerializableAlternateView.GetSerializableAlternateView(av));
            }
        }
Beispiel #2
0
        public static SerializableCollection GetSerializableCollection(StringDictionary col)
        {
            if (col == null)
            {
                return(null);
            }

            var scol = new SerializableCollection();

            foreach (String key in col.Keys)
            {
                scol.collection.Add(key, col[key]);
            }

            return(scol);
        }
Beispiel #3
0
        /// <summary>
        /// Returns serializable content type
        /// </summary>
        /// <param name="contentType">Original content type</param>
        /// <returns>serialized content type</returns>
        public static SerializableContentType GetSerializableContentType(ContentType contentType)
        {
            if (contentType == null)
            {
                return(null);
            }

            var serializedContentType = new SerializableContentType
            {
                name      = contentType.Name,
                boundary  = contentType.Boundary,
                mediaType = contentType.MediaType,
                charSet   = contentType.CharSet,
                serializedColParameters = SerializableCollection.GetSerializableCollection(contentType.Parameters)
            };

            return(serializedContentType);
        }
Beispiel #4
0
        /// <summary>
        /// Serailizes ontent disposition
        /// </summary>
        /// <param name="contentDisposition">content disposition to be serialized</param>
        /// <returns>serialized content disposition</returns>
        public static SerializableContentDisposition GetSerializableContentDisposition(ContentDisposition contentDisposition)
        {
            if (contentDisposition == null)
            {
                return(null);
            }

            var serializedContentDisposition = new SerializableContentDisposition
            {
                creationDate            = contentDisposition.CreationDate,
                dispositionType         = contentDisposition.DispositionType,
                fileName                = contentDisposition.FileName,
                inline                  = contentDisposition.Inline,
                modificationDate        = contentDisposition.ModificationDate,
                serializedColParameters = SerializableCollection.GetSerializableCollection(contentDisposition.Parameters),
                readDate                = contentDisposition.ReadDate,
                size = contentDisposition.Size
            };

            return(serializedContentDisposition);
        }