Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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<Operator>
{
Expand Down Expand Up @@ -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()
Expand All @@ -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<Operator>
{
Expand Down Expand Up @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ namespace LoanApplication.TacticalDdd.Tests.Mocks;
public class InMemoryBus : IEventPublisher
{
private readonly List<DomainEvent> events = new ();
public void Publish(DomainEvent @event)
public Task Publish(DomainEvent @event)
{
events.Add(@event);
return Task.CompletedTask;
}

public ReadOnlyCollection<DomainEvent> Events => events.AsReadOnly();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand All @@ -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));
Expand All @@ -29,6 +29,6 @@ public void AcceptApplication(string applicationNumber, ClaimsPrincipal principa

unitOfWork.CommitChanges();

eventPublisher.Publish(new LoanApplicationAccepted(loanApplication));
await eventPublisher.Publish(new LoanApplicationAccepted(loanApplication));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ namespace LoanApplication.TacticalDdd.DomainModel.Ddd;

public interface IEventPublisher
{
void Publish(DomainEvent @event);
Task Publish(DomainEvent @event);
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using LoanApplication.TacticalDdd.DomainModel.Ddd;
using Newtonsoft.Json;
using System.Text.Json.Serialization;

namespace LoanApplication.TacticalDdd.DomainModel;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using LoanApplication.TacticalDdd.DomainModel.Ddd;
using Newtonsoft.Json;
using System.Text.Json.Serialization;

namespace LoanApplication.TacticalDdd.DomainModel.DomainEvents;

Expand All @@ -13,8 +13,8 @@ public LoanApplicationAccepted(LoanApplication loanApplication)
}

[JsonConstructor]
protected LoanApplicationAccepted(Guid id)
protected LoanApplicationAccepted(Guid loanApplicationId)
{
LoanApplicationId = id;
LoanApplicationId = loanApplicationId;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using LoanApplication.TacticalDdd.DomainModel.Ddd;
using Newtonsoft.Json;
using System.Text.Json.Serialization;

namespace LoanApplication.TacticalDdd.DomainModel.DomainEvents;

Expand All @@ -13,8 +13,8 @@ public LoanApplicationRejected(LoanApplication loanApplication)
}

[JsonConstructor]
protected LoanApplicationRejected(Guid id)
protected LoanApplicationRejected(Guid loanApplicationId)
{
LoanApplicationId = id;
LoanApplicationId = loanApplicationId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ public static class MessageQueueClientInstaller
{
public static void AddRabbitMqClient(this IServiceCollection services, string brokerAddress)
{
services.AddSingleton<IBus>(_ => RabbitHutch.CreateBus(brokerAddress));
services.AddEasyNetQ(brokerAddress).UseSystemTextJson();
services.AddSingleton<IEventPublisher, RabbitMqEventPublisher>();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<ItemGroup>
<PackageReference Include="Carter" Version="10.0.0" />
<PackageReference Include="Dapper" Version="2.1.66" />
<PackageReference Include="EasyNetQ" Version="7.8.0" />
<PackageReference Include="EasyNetQ" Version="8.1.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.0" />
<PackageReference Include="Npgsql" Version="10.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Loading