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()); }
/// <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."); } }
/// <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); } }