public void Enqueue(EmailDetailsToProcess ev) { lock (_locker) { queue.Enqueue(ev); } }
public static void LogEmailProcessEvent(this IDnaLogger logger, string message, EmailDetailsToProcess ev) { var props = new Dictionary<string, object>() { { "EmailId", ev.ID}, { "Subject", ev.Subject} }; logger.Log(TraceEventType.Verbose, message, DateTime.MaxValue, props); }
private EmailDetailsToProcess CreateProcessorForEmail(IDnaDataReader reader) { EmailDetailsToProcess emailToProcess = new EmailDetailsToProcess(); emailToProcess.ID = reader.GetInt32("ID"); emailToProcess.Subject = reader.GetString("Subject"); emailToProcess.Body = reader.GetString("Body"); emailToProcess.FromAddress = reader.GetString("FromEmailAddress"); emailToProcess.ToAddress = reader.GetString("ToEmailAddress"); return emailToProcess; }
public void GivenValidEmailDetailsAndEmailClientShouldSendEmail() { TestLogger logger = new TestLogger(); IDnaSmtpClient client = MockRepository.GenerateMock<IDnaSmtpClient>(); EmailDetailsToProcess emailDetailsToProcess = new EmailDetailsToProcess(); emailDetailsToProcess.ID = 1; emailDetailsToProcess.Subject = "Subject"; emailDetailsToProcess.Body = "Email Body"; emailDetailsToProcess.FromAddress = "*****@*****.**"; emailDetailsToProcess.ToAddress = "*****@*****.**"; emailDetailsToProcess.ProcessEmail(client, logger); Assert.IsTrue(emailDetailsToProcess.Sent); Assert.IsNull(emailDetailsToProcess.LastFailedReason); }
public void GivenValidEmailDetailsAndInvalidEmailClientShouldNOTSendEmail() { TestLogger logger = new TestLogger(); IDnaSmtpClient client = MockRepository.GenerateMock<IDnaSmtpClient>(); client.Stub(x => x.SendMessage(null)).Throw(new Exception("No Host Set")); EmailDetailsToProcess emailDetailsToProcess = new EmailDetailsToProcess(); emailDetailsToProcess.ID = 1; emailDetailsToProcess.Subject = "Subject"; emailDetailsToProcess.Body = "Email Body"; emailDetailsToProcess.FromAddress = "*****@*****.**"; emailDetailsToProcess.ToAddress = "*****@*****.**"; emailDetailsToProcess.ProcessEmail(client, logger); Assert.IsTrue(emailDetailsToProcess.Sent); Assert.IsNull(emailDetailsToProcess.LastFailedReason); }
private void UpdateEmailFailure(EmailDetailsToProcess email, bool allowRetry) { using (var reader = ReaderCreator.CreateDnaDataReader("updatequeuedemail")) { reader.AddParameter("id", email.ID); reader.AddParameter("failuredetails", email.LastFailedReason); reader.AddParameter("retry", allowRetry ? 1 : 0); reader.Execute(); } }