Esempio n. 1
0
        public static Message ToMessage(this Entity entity)
        {
            var message       = new Message();
            var subjectHeader = entity.Headers.Where(x => x.Name.ToLower() == "subject").FirstOrDefault();

            if (subjectHeader != null)
            {
                message.Subject = subjectHeader.Value;
            }

            var dateHeader = entity.Headers.Where(x => x.Name.ToLower() == "date").FirstOrDefault();

            if (dateHeader != null)
            {
                message.Date = DateTime.Parse(dateHeader.Value.RemoveComments());
            }

            var contactParser = new ContactCollectionParser();
            var fromHeader    = entity.Headers.Where(x => x.Name.ToLower() == "from").FirstOrDefault();

            if (fromHeader != null)
            {
                var contacts = (IEnumerable <EmailContact>)contactParser.Parse(fromHeader.Value);
                ((List <EmailContact>)message.From).AddRange(contacts);
            }

            var toHeader = entity.Headers.Where(x => x.Name.ToLower() == "to").FirstOrDefault();

            if (toHeader != null)
            {
                var contacts = (IEnumerable <EmailContact>)contactParser.Parse(toHeader.Value);
                ((List <EmailContact>)message.To).AddRange(contacts);
            }

            var ccHeader = entity.Headers.Where(x => x.Name.ToLower() == "cc").FirstOrDefault();

            if (ccHeader != null)
            {
                var contacts = (IEnumerable <EmailContact>)contactParser.Parse(ccHeader.Value);
                ((List <EmailContact>)message.Ccs).AddRange(contacts);
            }

            var bccHeader = entity.Headers.Where(x => x.Name.ToLower() == "bcc").FirstOrDefault();

            if (bccHeader != null)
            {
                var contacts = (IEnumerable <EmailContact>)contactParser.Parse(bccHeader.Value);
                ((List <EmailContact>)message.Bccs).AddRange(contacts);
            }

            var replyToHeader = entity.Headers.Where(x => x.Name.ToLower() == "reply-to").FirstOrDefault();

            if (replyToHeader != null)
            {
                message.ReplyTo = replyToHeader.Value;
            }

            message.Headers.AddRange(entity.Headers);
            ParseEntity(message, entity, null);

            return(message);
        }
Esempio n. 2
0
        public static Message ToMessage(this Entity entity)
        {
            var message = new Message();
            var subjectHeader = entity.Headers.Where(x => x.Name.ToLower() == "subject").FirstOrDefault();
            if (subjectHeader != null) {
                message.Subject = subjectHeader.Value;
            }

            var dateHeader = entity.Headers.Where(x => x.Name.ToLower() == "date").FirstOrDefault();
            if (dateHeader != null) {
                message.Date = DateTime.Parse(dateHeader.Value.RemoveComments());
            }

            var contactParser = new ContactCollectionParser();
            var fromHeader = entity.Headers.Where(x => x.Name.ToLower() == "from").FirstOrDefault();
            if (fromHeader != null) {
                var contacts = (IEnumerable<EmailContact>) contactParser.Parse(fromHeader.Value);
                ((List<EmailContact>) message.From).AddRange(contacts);
            }

            var toHeader = entity.Headers.Where(x => x.Name.ToLower() == "to").FirstOrDefault();
            if (toHeader != null) {
                var contacts = (IEnumerable<EmailContact>) contactParser.Parse(toHeader.Value);
                ((List<EmailContact>) message.To).AddRange(contacts);
            }

            var ccHeader = entity.Headers.Where(x => x.Name.ToLower() == "cc").FirstOrDefault();
            if (ccHeader != null) {
                var contacts = (IEnumerable<EmailContact>) contactParser.Parse(ccHeader.Value);
                ((List<EmailContact>) message.Ccs).AddRange(contacts);
            }

            var bccHeader = entity.Headers.Where(x => x.Name.ToLower() == "bcc").FirstOrDefault();
            if (bccHeader != null) {
                var contacts = (IEnumerable<EmailContact>) contactParser.Parse(bccHeader.Value);
                ((List<EmailContact>) message.Bccs).AddRange(contacts);
            }

            var replyToHeader = entity.Headers.Where(x => x.Name.ToLower() == "reply-to").FirstOrDefault();
            if (replyToHeader != null) {
                message.ReplyTo = replyToHeader.Value;
            }

            message.Headers.AddRange(entity.Headers);
            ParseEntity(message, entity, null);

            return message;
        }