diff --git a/MessagingService.BusinessLogic.Tests/Mediator/DummyMessagingDomainService.cs b/MessagingService.BusinessLogic.Tests/Mediator/DummyMessagingDomainService.cs index 636c330..91465af 100644 --- a/MessagingService.BusinessLogic.Tests/Mediator/DummyMessagingDomainService.cs +++ b/MessagingService.BusinessLogic.Tests/Mediator/DummyMessagingDomainService.cs @@ -14,13 +14,7 @@ namespace MessagingService.BusinessLogic.Tests.Mediator public class DummyMessagingDomainService : IMessagingDomainService { - public async Task> SendEmailMessage(Guid connectionIdentifier, - Guid messageId, - String fromAddress, - List toAddresses, - String subject, - String body, - Boolean isHtml, + public async Task> SendEmailMessage(EmailCommands.SendEmailCommand command, List attachments, CancellationToken cancellationToken) => Result.Success(Guid.NewGuid()); diff --git a/MessagingService.BusinessLogic.Tests/Services/MessagingDomainServiceTests.cs b/MessagingService.BusinessLogic.Tests/Services/MessagingDomainServiceTests.cs index 8af24e9..9962bc3 100644 --- a/MessagingService.BusinessLogic.Tests/Services/MessagingDomainServiceTests.cs +++ b/MessagingService.BusinessLogic.Tests/Services/MessagingDomainServiceTests.cs @@ -45,13 +45,7 @@ public async Task MessagingDomainService_SendEmailMessage_MessageSent() MessagingDomainService messagingDomainService = new(emailAggregateRepository.Object, smsAggregateRepository.Object, emailServiceProxy.Object, smsServiceProxy.Object); - var result = await messagingDomainService.SendEmailMessage(TestData.ConnectionIdentifier, - TestData.MessageId, - TestData.FromAddress, - TestData.ToAddresses, - TestData.Subject, - TestData.Body, - TestData.IsHtmlTrue, + var result = await messagingDomainService.SendEmailMessage(TestData.SendEmailCommand, TestData.EmailAttachmentModels, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); @@ -79,13 +73,7 @@ public async Task MessagingDomainService_SendEmailMessage_SecondSend_MessageNotS MessagingDomainService messagingDomainService = new(emailAggregateRepository.Object, smsAggregateRepository.Object, emailServiceProxy.Object, smsServiceProxy.Object); - var result = await messagingDomainService.SendEmailMessage(TestData.ConnectionIdentifier, - TestData.MessageId, - TestData.FromAddress, - TestData.ToAddresses, - TestData.Subject, - TestData.Body, - TestData.IsHtmlTrue, + var result = await messagingDomainService.SendEmailMessage(TestData.SendEmailCommand, TestData.EmailAttachmentModels, CancellationToken.None); result.IsSuccess.ShouldBeTrue(); @@ -113,13 +101,7 @@ [Fact] public async Task MessagingDomainService_SendEmailMessage_SaveFailed_Mess MessagingDomainService messagingDomainService = new(emailAggregateRepository.Object, smsAggregateRepository.Object, emailServiceProxy.Object, smsServiceProxy.Object); - await messagingDomainService.SendEmailMessage(TestData.ConnectionIdentifier, - TestData.MessageId, - TestData.FromAddress, - TestData.ToAddresses, - TestData.Subject, - TestData.Body, - TestData.IsHtmlTrue, + await messagingDomainService.SendEmailMessage(TestData.SendEmailCommand, TestData.EmailAttachmentModels, CancellationToken.None); } @@ -145,13 +127,7 @@ public async Task MessagingDomainService_SendEmailMessage_EmailSentFailed_APICal MessagingDomainService messagingDomainService = new(emailAggregateRepository.Object, smsAggregateRepository.Object, emailServiceProxy.Object, smsServiceProxy.Object); - await messagingDomainService.SendEmailMessage(TestData.ConnectionIdentifier, - TestData.MessageId, - TestData.FromAddress, - TestData.ToAddresses, - TestData.Subject, - TestData.Body, - TestData.IsHtmlTrue, + await messagingDomainService.SendEmailMessage(TestData.SendEmailCommand, TestData.EmailAttachmentModels, CancellationToken.None); } @@ -177,13 +153,7 @@ public async Task MessagingDomainService_SendEmailMessage_EmailSentFailed_APIRes MessagingDomainService messagingDomainService = new(emailAggregateRepository.Object, smsAggregateRepository.Object, emailServiceProxy.Object, smsServiceProxy.Object); - await messagingDomainService.SendEmailMessage(TestData.ConnectionIdentifier, - TestData.MessageId, - TestData.FromAddress, - TestData.ToAddresses, - TestData.Subject, - TestData.Body, - TestData.IsHtmlTrue, + await messagingDomainService.SendEmailMessage(TestData.SendEmailCommand, TestData.EmailAttachmentModels, CancellationToken.None); } diff --git a/MessagingService.BusinessLogic/RequestHandlers/MessagingRequestHandler.cs b/MessagingService.BusinessLogic/RequestHandlers/MessagingRequestHandler.cs index 7370b08..5063a44 100644 --- a/MessagingService.BusinessLogic/RequestHandlers/MessagingRequestHandler.cs +++ b/MessagingService.BusinessLogic/RequestHandlers/MessagingRequestHandler.cs @@ -66,13 +66,7 @@ public async Task> Handle(EmailCommands.SendEmailCommand command, }); } - return await this.MessagingDomainService.SendEmailMessage(command.ConnectionIdentifier, - command.MessageId, - command.FromAddress, - command.ToAddresses, - command.Subject, - command.Body, - command.IsHtml, + return await this.MessagingDomainService.SendEmailMessage(command, attachments, cancellationToken); } diff --git a/MessagingService.BusinessLogic/Services/EmailServices/IEmailServiceProxy.cs b/MessagingService.BusinessLogic/Services/EmailServices/IEmailServiceProxy.cs index de02bef..b92fc24 100644 --- a/MessagingService.BusinessLogic/Services/EmailServices/IEmailServiceProxy.cs +++ b/MessagingService.BusinessLogic/Services/EmailServices/IEmailServiceProxy.cs @@ -10,18 +10,6 @@ public interface IEmailServiceProxy { #region Methods - /// - /// Sends the email. - /// - /// The message identifier. - /// From address. - /// To addresses. - /// The subject. - /// The body. - /// if set to true [is HTML]. - /// The attachments. - /// The cancellation token. - /// Task SendEmail(Guid messageId, String fromAddress, List toAddresses, @@ -31,14 +19,6 @@ Task SendEmail(Guid messageId, List attachments, CancellationToken cancellationToken); - /// - /// Gets the message status. - /// - /// The provider reference. - /// The start date. - /// The end date. - /// The cancellation token. - /// Task GetMessageStatus(String providerReference, DateTime startDate, DateTime endDate, diff --git a/MessagingService.BusinessLogic/Services/IMessagingDomainService.cs b/MessagingService.BusinessLogic/Services/IMessagingDomainService.cs index f6379ff..da8c3a1 100644 --- a/MessagingService.BusinessLogic/Services/IMessagingDomainService.cs +++ b/MessagingService.BusinessLogic/Services/IMessagingDomainService.cs @@ -16,15 +16,9 @@ public interface IMessagingDomainService { #region Methods - Task> SendEmailMessage(Guid connectionIdentifier, - Guid messageId, - String fromAddress, - List toAddresses, - String subject, - String body, - Boolean isHtml, - List attachments, - CancellationToken cancellationToken); + Task> SendEmailMessage(EmailCommands.SendEmailCommand command, + List attachments, + CancellationToken cancellationToken); Task> SendSMSMessage(Guid connectionIdentifier, Guid messageId, diff --git a/MessagingService.BusinessLogic/Services/MessagingDomainService.cs b/MessagingService.BusinessLogic/Services/MessagingDomainService.cs index 2847048..439372e 100644 --- a/MessagingService.BusinessLogic/Services/MessagingDomainService.cs +++ b/MessagingService.BusinessLogic/Services/MessagingDomainService.cs @@ -111,13 +111,7 @@ private async Task ApplySMSUpdates(Func> acti } } - public async Task> SendEmailMessage(Guid connectionIdentifier, - Guid messageId, - String fromAddress, - List toAddresses, - String subject, - String body, - Boolean isHtml, + public async Task> SendEmailMessage(EmailCommands.SendEmailCommand command, List attachments, CancellationToken cancellationToken) { Result result = await ApplyEmailUpdates(async (EmailAggregate emailAggregate) => @@ -129,11 +123,11 @@ public async Task> SendEmailMessage(Guid connectionIdentifier, } // send message to provider (record event) - emailAggregate.SendRequestToProvider(fromAddress, toAddresses, subject, body, isHtml, attachments); + emailAggregate.SendRequestToProvider(command.FromAddress, command.ToAddresses, command.Subject, command.Body, command.IsHtml, attachments); // Make call to Email provider here - EmailServiceProxyResponse emailResponse = await this.EmailServiceProxy.SendEmail(messageId, fromAddress, - toAddresses, subject, body, isHtml, attachments, cancellationToken); + EmailServiceProxyResponse emailResponse = await this.EmailServiceProxy.SendEmail(command.MessageId, command.FromAddress, + command.ToAddresses,command.Subject, command.Body, command.IsHtml, attachments, cancellationToken); if (emailResponse.ApiCallSuccessful) { @@ -147,11 +141,11 @@ public async Task> SendEmailMessage(Guid connectionIdentifier, } return Result.Success(); - }, messageId, cancellationToken, false); + }, command.MessageId, cancellationToken, false); if (result.IsFailed) return result; - return Result.Success(messageId); + return Result.Success(command.MessageId); } public async Task> SendSMSMessage(Guid connectionIdentifier, @@ -194,7 +188,7 @@ public async Task ResendEmailMessage(Guid connectionIdentifier, Result result = await ApplyEmailUpdates(async (EmailAggregate emailAggregate) => { // re-send message to provider (record event) emailAggregate.ResendRequestToProvider(); - + // Make call to Email provider here EmailServiceProxyResponse emailResponse = await this.EmailServiceProxy.SendEmail(messageId, emailAggregate.FromAddress,