示例#1
0
        private int AddContactToMandrillSentMessage(IMessageInfo messageInfo, Mandrill.EmailResult emailResult)
        {
            if (emailResult == null)
            {
                return(0);
            }
            EmailResultStatus     emailResultStatus = emailResult.Status;
            BulkEmailResponseCode response;

            try {
                response = emailResultStatus.GetBulkEmailResponseCode();
            } catch (InvalidCastException) {
                return(0);
            }
            Guid mandrillId;

            if (!Guid.TryParse(emailResult.Id, out mandrillId))
            {
                return(0);
            }
            var recipientInfo = messageInfo.Recipients.FirstOrDefault() as BulkEmailRecipientInfo;
            var insert        = new Insert(_userConnection)
                                .Into("MandrillSentMessage")
                                .Set("MandrillId", Column.Parameter(mandrillId))
                                .Set("BulkEmailRId", Column.Parameter(messageInfo.MessageRId))
                                .Set("ContactRId", Column.Parameter(recipientInfo.ContactRId))
                                .Set("ResponseCode", Column.Parameter((int)response))
                                .Set("MailingStartTS", Column.Parameter(messageInfo.MailingStartTS));

            return(insert.Execute());
        }
示例#2
0
        /// <summary>
        /// ########## ###### # email #########.
        /// </summary>
        /// <param name="status">######### ######### <see cref="Mandrill.EmailResultStatus"/>.</param>
        /// <returns>####### # email #########.</returns>
        public static BulkEmailResponseCode GetBulkEmailResponseCode(this EmailResultStatus status)
        {
            switch (status)
            {
            case EmailResultStatus.Invalid:
                return(BulkEmailResponseCode.Invalid);

            case EmailResultStatus.Queued:
                return(BulkEmailResponseCode.Queued);

            case EmailResultStatus.Rejected:
                return(BulkEmailResponseCode.Rejected);

            case EmailResultStatus.Sent:
                return(BulkEmailResponseCode.Sent);

            default:
                throw new InvalidCastException(status + " is not a defined value for enum type EmailResultStatus.");
            }
        }
示例#3
0
        /// <summary>
        /// ########## ########## ############# ####### # ######### email.
        /// </summary>
        /// <param name="status">######### ######### <see cref="Mandrill.EmailResultStatus"/>.</param>
        /// <returns>########## ############# ####### # ######### email.</returns>
        public static Guid GetBulkEmailResponse(this EmailResultStatus status)
        {
            switch (status)
            {
            case EmailResultStatus.Invalid:
                return(MarketingConsts.BulkEmailResponseInvalidId);

            case EmailResultStatus.Queued:
                return(MarketingConsts.BulkEmailResponseQueuedId);

            case EmailResultStatus.Rejected:
                return(MarketingConsts.BulkEmailResponseRejectedId);

            case EmailResultStatus.Sent:
                return(MarketingConsts.BulkEmailResponseSentId);

            default:
                return(Guid.Empty);
            }
        }