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);
        }
Beispiel #3
0
        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);
        }
Beispiel #6
0
 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();
     }
 }