public void CreateMessage(QueuedEmailMessage message)
        {
            var id = 0;

            _sqlObjectFactory.GetConnection().Using(connection => id = Convert.ToInt32(
                                                        connection.Command("INSERT INTO pf_QueuedEmailMessage (FromEmail, FromName, ToEmail, ToName, Subject, Body, HtmlBody, QueueTime) VALUES (@FromEmail, @FromName, @ToEmail, @ToName, @Subject, @Body, @HtmlBody, @QueueTime)")
                                                        .AddParameter("@FromEmail", message.FromEmail)
                                                        .AddParameter("@FromName", message.FromName)
                                                        .AddParameter("@ToEmail", message.ToEmail)
                                                        .AddParameter("@ToName", message.ToName)
                                                        .AddParameter("@Subject", message.Subject)
                                                        .AddParameter("@Body", message.Body)
                                                        .AddParameter("@HtmlBody", message.HtmlBody.GetObjectOrDbNull())
                                                        .AddParameter("@QueueTime", message.QueueTime)
                                                        .ExecuteAndReturnIdentity()));
            if (id == 0)
            {
                throw new Exception("MessageID was not returned from creation of a QueuedEmailMessage.");
            }
            var payload = new EmailQueuePayload {
                MessageID = id, EmailQueuePayloadType = EmailQueuePayloadType.FullMessage
            };

            WriteMessageToEmailQueue(payload);
        }
Beispiel #2
0
        protected void WriteMessageToEmailQueue(EmailQueuePayload payload)
        {
            var serializedPayload = JsonConvert.SerializeObject(payload);

            _sqlObjectFactory.GetConnection().Using(connection =>
                                                    connection.Execute("INSERT INTO pf_EmailQueue (Payload) VALUES (@Payload)", new { Payload = serializedPayload }));
        }
        public async Task Enqueue(EmailQueuePayload payload)
        {
            var serializedPayload = JsonConvert.SerializeObject(payload);
            var message           = new CloudQueueMessage(serializedPayload);
            var queue             = await GetQueue();

            await queue.AddMessageAsync(message);
        }
Beispiel #4
0
        public void Enqueue(EmailQueuePayload payload)
        {
            var serializedPayload = JsonConvert.SerializeObject(payload);
            var message           = new CloudQueueMessage(serializedPayload);
            var queue             = GetQueue().Result;

            queue.AddMessageAsync(message);
        }
        protected void WriteMessageToEmailQueue(EmailQueuePayload payload)
        {
            var serializedPayload = JsonConvert.SerializeObject(payload);

            _sqlObjectFactory.GetConnection().Using(connection =>
                                                    connection.Command("INSERT INTO pf_EmailQueue (Payload) VALUES (@Payload)")
                                                    .AddParameter("@Payload", serializedPayload)
                                                    .ExecuteNonQuery());
        }
Beispiel #6
0
        public void CreateAndQueueEmail(QueuedEmailMessage queuedEmailMessage)
        {
            var id       = _queuedEmailMessageRepository.CreateMessage(queuedEmailMessage);
            var tenantID = _tenantService.GetTenant();
            var payload  = new EmailQueuePayload {
                MessageID = id, EmailQueuePayloadType = EmailQueuePayloadType.FullMessage, TenantID = tenantID
            };

            _emailQueueRepository.Enqueue(payload);
        }
Beispiel #7
0
        public void CreateMessage(QueuedEmailMessage message)
        {
            var id = 0;

            _sqlObjectFactory.GetConnection().Using(connection =>
                                                    id = connection.QuerySingle <int>("INSERT INTO pf_QueuedEmailMessage (FromEmail, FromName, ToEmail, ToName, Subject, Body, HtmlBody, QueueTime) VALUES (@FromEmail, @FromName, @ToEmail, @ToName, @Subject, @Body, @HtmlBody, @QueueTime);SELECT CAST(SCOPE_IDENTITY() as int)", new { message.FromEmail, message.FromName, message.ToEmail, message.ToName, message.Subject, message.Body, message.HtmlBody, message.QueueTime }));
            if (id == 0)
            {
                throw new Exception("MessageID was not returned from creation of a QueuedEmailMessage.");
            }
            var payload = new EmailQueuePayload {
                MessageID = id, EmailQueuePayloadType = EmailQueuePayloadType.FullMessage
            };

            WriteMessageToEmailQueue(payload);
        }
Beispiel #8
0
        public void CreateAndQueueEmailCallsEmailQueueWithCorrectPayload()
        {
            var service   = GetService();
            var messageID = 123;
            var message   = new QueuedEmailMessage();

            _queuedEmailMessageRepo.Setup(x => x.CreateMessage(message)).Returns(messageID);
            var tenantID = "t1";

            _tenantService.Setup(x => x.GetTenant()).Returns(tenantID);
            var payload = new EmailQueuePayload();

            _emailQueueRepo.Setup(x => x.Enqueue(It.IsAny <EmailQueuePayload>())).Callback <EmailQueuePayload>(p => payload = p);

            service.CreateAndQueueEmail(message);

            Assert.Equal(messageID, payload.MessageID);
            Assert.Equal(EmailQueuePayloadType.FullMessage, payload.EmailQueuePayloadType);
            Assert.Equal(tenantID, payload.TenantID);
        }
 public async Task Enqueue(EmailQueuePayload payload)
 {
     var serializedPayload = JsonConvert.SerializeObject(payload);
     await _sqlObjectFactory.GetConnection().UsingAsync(connection =>
                                                        connection.ExecuteAsync("INSERT INTO pf_EmailQueue (Payload) VALUES (@Payload)", new { Payload = serializedPayload }));
 }