Beispiel #1
0
 public void Handle(SendOneEmailNow message)
 {
     Data.OriginalMessage = message;
     Data.StartTime       = DateTime.Now;
     Bus.SendLocal(new SendEmail
     {
         EmailSagaId = Data.Id,
         BaseRequest = message
     });
 }
Beispiel #2
0
 public EmailStatusUpdate(SendOneEmailNow originalMessage, string emailId)
 {
     EmailId         = emailId;
     ToAddress       = originalMessage.ToAddress;
     FromAddress     = originalMessage.FromAddress;
     FromDisplayName = originalMessage.FromDisplayName;
     ReplyToAddress  = originalMessage.ReplyToAddress;
     Subject         = originalMessage.Subject;
     BodyHtml        = originalMessage.BodyHtml;
     BodyText        = originalMessage.BodyText;
     CorrelationId   = originalMessage.CorrelationId;
     // TODO: Do we need email confrmation?
     //ConfirmationEmailAddress = originalMessage
     Username = originalMessage.Username;
 }
Beispiel #3
0
        public void TimeoutPromptsMessageSending_Data()
        {
            var bus = MockRepository.GenerateMock <IBus>();

            var sendOneEmailNow = new SendOneEmailNow();

            bus.Expect(b => b.Send(Arg <string> .Is.Anything, Arg <SendOneEmailNow> .Is.NotNull))
            .WhenCalled(i => sendOneEmailNow = (SendOneEmailNow)(i.Arguments[1]));

            var dataId          = Guid.NewGuid();
            var originalMessage = new ScheduleEmailForSendingLater {
                EmailData = new EmailData
                {
                    BodyHtml        = "html",
                    BodyText        = "text",
                    FromAddress     = "from",
                    FromDisplayName = "display",
                    ReplyToAddress  = "replyto",
                    Subject         = "subject",
                    ToAddress       = "to"
                }
            };
            var data = new ScheduledEmailData {
                Id = dataId, OriginalMessageData = new OriginalEmailMessageData(originalMessage)
            };

            var scheduleEmail = new EmailScheduler {
                Bus = bus, Data = data
            };
            var timeoutMessage = new ScheduleEmailTimeout();

            scheduleEmail.Timeout(timeoutMessage);

            Assert.That(sendOneEmailNow.BodyHtml, Is.EqualTo(data.OriginalMessageData.BodyHtml));
            Assert.That(sendOneEmailNow.BodyText, Is.EqualTo(data.OriginalMessageData.BodyText));
            Assert.That(sendOneEmailNow.FromAddress, Is.EqualTo(data.OriginalMessageData.FromAddress));
            Assert.That(sendOneEmailNow.FromDisplayName, Is.EqualTo(data.OriginalMessageData.FromDisplayName));
            Assert.That(sendOneEmailNow.ReplyToAddress, Is.EqualTo(data.OriginalMessageData.ReplyToAddress));
            Assert.That(sendOneEmailNow.Subject, Is.EqualTo(data.OriginalMessageData.Subject));
            Assert.That(sendOneEmailNow.ToAddress, Is.EqualTo(data.OriginalMessageData.ToAddress));
            Assert.That(sendOneEmailNow.Username, Is.EqualTo(data.OriginalMessageData.Username));
            Assert.That(sendOneEmailNow.CorrelationId, Is.EqualTo(data.Id));

            bus.VerifyAllExpectations();
        }
Beispiel #4
0
 public void Timeout(ScheduleEmailTimeout state)
 {
     if (!Data.SchedulingPaused && state.TimeoutCounter == Data.TimeoutCounter)
     {
         var originalMessage = Data.OriginalMessageData;
         var sendOneEmailNow = new SendOneEmailNow
         {
             CorrelationId   = Data.Id,
             BodyHtml        = Data.OriginalMessageData.BodyHtml,
             BodyText        = Data.OriginalMessageData.BodyText,
             FromAddress     = Data.OriginalMessageData.FromAddress,
             FromDisplayName = Data.OriginalMessageData.FromDisplayName,
             ReplyToAddress  = Data.OriginalMessageData.ReplyToAddress,
             Subject         = Data.OriginalMessageData.Subject,
             ToAddress       = Data.OriginalMessageData.ToAddress,
             Username        = originalMessage.Username
         };
         Bus.Send("smsactioner", sendOneEmailNow);
     }
 }