diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/ApplicationTests/LoanApplicationDecisionServiceTests.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/ApplicationTests/LoanApplicationDecisionServiceTests.cs index 7f7e26f..3854ef2 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/ApplicationTests/LoanApplicationDecisionServiceTests.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/ApplicationTests/LoanApplicationDecisionServiceTests.cs @@ -13,7 +13,7 @@ namespace LoanApplication.TacticalDdd.Tests.ApplicationTests; public class LoanApplicationDecisionServiceTests { [Fact] - public void LoanApplicationDecisionService_GreenApplication_CanBeAccepted() + public async Task LoanApplicationDecisionService_GreenApplication_CanBeAccepted() { var operators = new InMemoryOperatorRepository(new List { @@ -41,7 +41,7 @@ public void LoanApplicationDecisionService_GreenApplication_CanBeAccepted() ); - decisionService.AcceptApplication("123", OperatorIdentity("admin")); + await decisionService.AcceptApplication("123", OperatorIdentity("admin")); existingApplications.WithNumber(new LoanApplicationNumber("123")) .Should() @@ -54,7 +54,7 @@ public void LoanApplicationDecisionService_GreenApplication_CanBeAccepted() } [Fact] - public void LoanApplicationDecisionService_GreenApplication_CanBeRejected() + public async Task LoanApplicationDecisionService_GreenApplication_CanBeRejected() { var operators = new InMemoryOperatorRepository(new List { @@ -82,7 +82,7 @@ public void LoanApplicationDecisionService_GreenApplication_CanBeRejected() ); - decisionService.RejectApplication("123", OperatorIdentity("admin"), null); + await decisionService.RejectApplication("123", OperatorIdentity("admin"), null); existingApplications.WithNumber(new LoanApplicationNumber("123")) .Should() diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/Mocks/InMemoryBus.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/Mocks/InMemoryBus.cs index 03382fc..cb82e6e 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/Mocks/InMemoryBus.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.Tests/Mocks/InMemoryBus.cs @@ -6,9 +6,10 @@ namespace LoanApplication.TacticalDdd.Tests.Mocks; public class InMemoryBus : IEventPublisher { private readonly List events = new (); - public void Publish(DomainEvent @event) + public Task Publish(DomainEvent @event) { events.Add(@event); + return Task.CompletedTask; } public ReadOnlyCollection Events => events.AsReadOnly(); diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Application/LoanApplicationDecisionService.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Application/LoanApplicationDecisionService.cs index 0945210..e4809e7 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Application/LoanApplicationDecisionService.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Application/LoanApplicationDecisionService.cs @@ -8,7 +8,7 @@ namespace LoanApplication.TacticalDdd.Application; public class LoanApplicationDecisionService(IUnitOfWork unitOfWork, ILoanApplicationRepository loanApplications, IOperatorRepository operators, IEventPublisher eventPublisher) { - public void RejectApplication(string applicationNumber, ClaimsPrincipal principal, string rejectionReason) + public async Task RejectApplication(string applicationNumber, ClaimsPrincipal principal, string rejectionReason) { var loanApplication = loanApplications.WithNumber(LoanApplicationNumber.Of(applicationNumber)); var user = operators.WithLogin(Login.Of(principal.Identity.Name)); @@ -17,10 +17,10 @@ public void RejectApplication(string applicationNumber, ClaimsPrincipal principa unitOfWork.CommitChanges(); - eventPublisher.Publish(new LoanApplicationRejected(loanApplication)); + await eventPublisher.Publish(new LoanApplicationRejected(loanApplication)); } - public void AcceptApplication(string applicationNumber, ClaimsPrincipal principal) + public async Task AcceptApplication(string applicationNumber, ClaimsPrincipal principal) { var loanApplication = loanApplications.WithNumber(LoanApplicationNumber.Of(applicationNumber)); var user = operators.WithLogin(Login.Of(principal.Identity.Name)); @@ -29,6 +29,6 @@ public void AcceptApplication(string applicationNumber, ClaimsPrincipal principa unitOfWork.CommitChanges(); - eventPublisher.Publish(new LoanApplicationAccepted(loanApplication)); + await eventPublisher.Publish(new LoanApplicationAccepted(loanApplication)); } } \ No newline at end of file diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Ddd/IEventPublisher.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Ddd/IEventPublisher.cs index 1814b98..550d948 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Ddd/IEventPublisher.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Ddd/IEventPublisher.cs @@ -2,5 +2,5 @@ namespace LoanApplication.TacticalDdd.DomainModel.Ddd; public interface IEventPublisher { - void Publish(DomainEvent @event); + Task Publish(DomainEvent @event); } \ No newline at end of file diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Decision.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Decision.cs index 761d8f0..ae4c095 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Decision.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/Decision.cs @@ -1,5 +1,5 @@ using LoanApplication.TacticalDdd.DomainModel.Ddd; -using Newtonsoft.Json; +using System.Text.Json.Serialization; namespace LoanApplication.TacticalDdd.DomainModel; diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationAccepted.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationAccepted.cs index 09083b3..899342f 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationAccepted.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationAccepted.cs @@ -1,5 +1,5 @@ using LoanApplication.TacticalDdd.DomainModel.Ddd; -using Newtonsoft.Json; +using System.Text.Json.Serialization; namespace LoanApplication.TacticalDdd.DomainModel.DomainEvents; @@ -13,8 +13,8 @@ public LoanApplicationAccepted(LoanApplication loanApplication) } [JsonConstructor] - protected LoanApplicationAccepted(Guid id) + protected LoanApplicationAccepted(Guid loanApplicationId) { - LoanApplicationId = id; + LoanApplicationId = loanApplicationId; } } \ No newline at end of file diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationRejected.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationRejected.cs index 19a9c68..aa4654c 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationRejected.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/DomainModel/DomainEvents/LoanApplicationRejected.cs @@ -1,5 +1,5 @@ using LoanApplication.TacticalDdd.DomainModel.Ddd; -using Newtonsoft.Json; +using System.Text.Json.Serialization; namespace LoanApplication.TacticalDdd.DomainModel.DomainEvents; @@ -13,8 +13,8 @@ public LoanApplicationRejected(LoanApplication loanApplication) } [JsonConstructor] - protected LoanApplicationRejected(Guid id) + protected LoanApplicationRejected(Guid loanApplicationId) { - LoanApplicationId = id; + LoanApplicationId = loanApplicationId; } } \ No newline at end of file diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/MessageQueueClientInstaller.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/MessageQueueClientInstaller.cs index e9a1ad3..02397fd 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/MessageQueueClientInstaller.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/MessageQueueClientInstaller.cs @@ -7,7 +7,7 @@ public static class MessageQueueClientInstaller { public static void AddRabbitMqClient(this IServiceCollection services, string brokerAddress) { - services.AddSingleton(_ => RabbitHutch.CreateBus(brokerAddress)); + services.AddEasyNetQ(brokerAddress).UseSystemTextJson(); services.AddSingleton(); } } \ No newline at end of file diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/RabbitMqEventPublisher.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/RabbitMqEventPublisher.cs index 2a82359..50a4d8d 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/RabbitMqEventPublisher.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Infrastructure/MessageQueue/RabbitMqEventPublisher.cs @@ -5,5 +5,5 @@ namespace LoanApplication.TacticalDdd.Infrastructure.MessageQueue; public class RabbitMqEventPublisher(IBus bus) : IEventPublisher { - public void Publish(DomainEvent @event) =>bus.PubSub.Publish(@event); + public async Task Publish(DomainEvent @event) => await bus.PubSub.PublishAsync(@event); } \ No newline at end of file diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.csproj b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.csproj index 412cf5b..823d47b 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.csproj +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd.csproj @@ -9,7 +9,7 @@ - + diff --git a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Web/LoanApplicationApi.cs b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Web/LoanApplicationApi.cs index 59e14ea..9925b8d 100644 --- a/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Web/LoanApplicationApi.cs +++ b/LoanApplication.TacticalDdd/LoanApplication.TacticalDdd/Web/LoanApplicationApi.cs @@ -35,18 +35,18 @@ public void AddRoutes(IEndpointRouteBuilder app) .Produces(Status200OK); group - .MapPut("accept/{applicationNumber}", (string applicationNumber, ClaimsPrincipal user, LoanApplicationDecisionService loanApplicationDecisionService) => + .MapPut("accept/{applicationNumber}", async (string applicationNumber, ClaimsPrincipal user, LoanApplicationDecisionService loanApplicationDecisionService) => { - loanApplicationDecisionService.AcceptApplication(applicationNumber,user); + await loanApplicationDecisionService.AcceptApplication(applicationNumber,user); return Results.Ok(); }) .Produces(Status200OK); group - .MapPut("reject/{applicationNumber}", (string applicationNumber, ClaimsPrincipal user ,LoanApplicationDecisionService loanApplicationDecisionService) => + .MapPut("reject/{applicationNumber}", async (string applicationNumber, ClaimsPrincipal user ,LoanApplicationDecisionService loanApplicationDecisionService) => { - loanApplicationDecisionService.RejectApplication(applicationNumber,user, null); + await loanApplicationDecisionService.RejectApplication(applicationNumber,user, null); return Results.Ok(); }) .Produces(Status200OK);