From 40af7d283d0b88a248e2fc7eaeba94627e43353a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:32:06 +0000 Subject: [PATCH 01/18] Initial plan From 0e967f18b3ed3ea886a35b5463886dee60ad42f4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:38:19 +0000 Subject: [PATCH 02/18] Update target framework and package versions to .NET 10 Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Common/Directory.Build.props | 2 +- .../Fitnet.Common.Core/Fitnet.Common.Core.csproj | 2 +- .../Fitnet.Common.Infrastructure.csproj | 10 +++++----- .../Fitnet.Contracts/Src/Directory.Build.props | 2 +- .../Fitnet.Contracts/Src/Dockerfile | 4 ++-- .../Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj | 3 ++- .../Fitnet.Contracts.Infrastructure.csproj | 6 +++--- .../Fitnet.Contracts.IntegrationEvents.csproj | 2 +- .../Fitnet.Contracts.IntegrationTests.csproj | 2 +- .../Fitnet/Src/Directory.Build.props | 2 +- .../Fitnet/Src/Dockerfile | 4 ++-- .../Fitnet/Src/Fitnet/Fitnet.csproj | 3 ++- .../Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj | 2 +- .../Fitnet.Offers.DataAccess.csproj | 6 +++--- .../Fitnet.Offers.IntegrationTests.csproj | 4 ++-- .../Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj | 5 +++-- .../Fitnet.Passes.DataAccess.csproj | 6 +++--- .../Fitnet.Passes.IntegrationEvents.csproj | 2 +- .../Fitnet.Passes.IntegrationTests.csproj | 4 ++-- .../Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj | 7 ++++--- .../Fitnet.Reports.IntegrationTests.csproj | 4 ++-- 21 files changed, 43 insertions(+), 39 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Directory.Build.props b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Directory.Build.props index 4e4b16a0..673a7a9b 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Directory.Build.props +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Directory.Build.props @@ -3,7 +3,7 @@ EvolutionaryArchitecture.$(MSBuildProjectName) $(AssemblyName) - net9.0 + net10.0 latest true true diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Core/Fitnet.Common.Core.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Core/Fitnet.Common.Core.csproj index e70f667e..86871759 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Core/Fitnet.Common.Core.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Core/Fitnet.Common.Core.csproj @@ -1,7 +1,7 @@ - + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj index 692cfa1a..499343c6 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj @@ -2,10 +2,10 @@ - - - - - + + + + + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Build.props b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Build.props index 32629cc7..21ff713d 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Build.props +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Build.props @@ -3,7 +3,7 @@ EvolutionaryArchitecture.$(MSBuildProjectName) $(AssemblyName) - net9.0 + net10.0 latest true true diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Dockerfile b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Dockerfile index f15cb2cc..1491b7a3 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Dockerfile +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src COPY Directory.Build.props ./ COPY ["Fitnet.Contracts/Fitnet.Contracts.csproj", "Fitnet.Contracts/"] diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj index 001181fb..9026a590 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj @@ -17,7 +17,8 @@ - + + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj index dbb232f3..cac124a7 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj @@ -9,9 +9,9 @@ - - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj index ebdf6f17..6ef188c9 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj @@ -5,6 +5,6 @@ - + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj index 31cf1a79..ee4ae696 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj @@ -11,7 +11,7 @@ - + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Build.props b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Build.props index 32629cc7..21ff713d 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Build.props +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Build.props @@ -3,7 +3,7 @@ EvolutionaryArchitecture.$(MSBuildProjectName) $(AssemblyName) - net9.0 + net10.0 latest true true diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Dockerfile b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Dockerfile index 248ebe90..8a5b15ed 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Dockerfile +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src COPY Directory.Build.props ./ COPY ["Fitnet/Fitnet.csproj", "Fitnet/"] diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj index 159a1ee1..21938edf 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj @@ -6,7 +6,8 @@ - + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj index 79055801..7055d16d 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj @@ -15,7 +15,7 @@ - + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj index a1a6d536..a89c78b2 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj @@ -1,8 +1,8 @@ - - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj index d0de8fbc..f1f6f83b 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj index 1e0d1354..8ddf94db 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj @@ -20,7 +20,8 @@ - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj index b02a1872..d10e1c48 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj @@ -2,9 +2,9 @@ - - - + + + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj index d3f5a374..382964d3 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj @@ -4,6 +4,6 @@ - + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj index cc3f7132..c81a6bc7 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj index 4a15f478..d86e5b94 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj @@ -8,9 +8,10 @@ - - - + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj index 0d26023b..69e37ea8 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj @@ -9,8 +9,8 @@ - - + + From 372664dc0d1f7ff7fc38daa7c7a841c647d8f95c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:39:46 +0000 Subject: [PATCH 03/18] Replace WithOpenApi with WithSummary and WithDescription Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../AttachAnnexToBindingContractEndpoint.cs | 7 ++----- .../PrepareContract/PrepareContractEndpoint.cs | 8 ++------ .../SignContract/SignContractEndpoint.cs | 8 ++------ .../TerminateBindingContractEndpoint.cs | 7 ++----- .../TerminateBindingContract/TerminateContractEndpoint.cs | 7 ++----- .../GetAllPasses/GetAllPassesEndpoint.cs | 8 ++------ .../MarkPassAsExpired/MarkPassAsExpiredEndpoint.cs | 8 ++------ .../GenerateNewPassesPerMonthReportEndpoint.cs | 8 ++------ 8 files changed, 16 insertions(+), 45 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/AttachAnnexToBindingContract/AttachAnnexToBindingContractEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/AttachAnnexToBindingContract/AttachAnnexToBindingContractEndpoint.cs index 6bd85529..02b4f087 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/AttachAnnexToBindingContract/AttachAnnexToBindingContractEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/AttachAnnexToBindingContract/AttachAnnexToBindingContractEndpoint.cs @@ -18,11 +18,8 @@ internal static void MapAttachAnnexToBindingContract(this IEndpointRouteBuilder await contractsModule.ExecuteCommandAsync(request.ToCommand(id), cancellationToken) .Match(annexId => Results.Created(BuildUrl(id, annexId), annexId), errors => errors.ToProblem())) - .WithOpenApi(operation => new(operation) - { - Summary = "Attach annex to existing binding contract", - Description = "This endpoint is used to attach an annex to an existing binding contract.", - }) + .WithSummary("Attach annex to existing binding contract") + .WithDescription("This endpoint is used to attach an annex to an existing binding contract.") .Produces(StatusCodes.Status201Created) .Produces(StatusCodes.Status404NotFound) .Produces(StatusCodes.Status409Conflict) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/PrepareContract/PrepareContractEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/PrepareContract/PrepareContractEndpoint.cs index 92f6fcd7..4f636d1f 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/PrepareContract/PrepareContractEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/PrepareContract/PrepareContractEndpoint.cs @@ -17,12 +17,8 @@ await contractsModule.ExecuteCommandAsync(request.ToCommand(), cancellationToken contractId => Results.Created(ContractsApiPaths.GetPreparedContractPath(contractId), (object?)contractId), errors => errors.ToProblem())) .ValidateRequest() - .WithOpenApi(operation => new(operation) - { - Summary = "Triggers preparation of a new contract for new or existing customer", - Description = - "This endpoint is used to prepare a new contract for new and existing customers.", - }) + .WithSummary("Triggers preparation of a new contract for new or existing customer") + .WithDescription("This endpoint is used to prepare a new contract for new and existing customers.") .Produces(StatusCodes.Status201Created) .Produces(StatusCodes.Status409Conflict) .Produces(StatusCodes.Status500InternalServerError); diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/SignContract/SignContractEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/SignContract/SignContractEndpoint.cs index 64ed579d..2499e7b1 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/SignContract/SignContractEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/SignContract/SignContractEndpoint.cs @@ -20,12 +20,8 @@ await contractsModule bindingContractId => Results.Created($"/{ContractsApiPaths.BindingContracts}/{bindingContractId}", bindingContractId), errors => errors.ToProblem())) .ValidateRequest() - .WithOpenApi(operation => new(operation) - { - Summary = "Signs prepared contract", - Description = - "This endpoint is used to sign prepared contract by customer.", - }) + .WithSummary("Signs prepared contract") + .WithDescription("This endpoint is used to sign prepared contract by customer.") .Produces(StatusCodes.Status201Created) .Produces(StatusCodes.Status404NotFound) .Produces(StatusCodes.Status409Conflict) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateBindingContractEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateBindingContractEndpoint.cs index f81312a7..ea2257a9 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateBindingContractEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateBindingContractEndpoint.cs @@ -19,11 +19,8 @@ await contractsModule.ExecuteCommandAsync(new TerminateBindingContractCommand(bi .Match( _ => Results.NoContent(), errors => errors.ToProblem())) - .WithOpenApi(operation => new(operation) - { - Summary = "Terminates binding contract", - Description = "This endpoint is used to terminate an existing binding contract." - }) + .WithSummary("Terminates binding contract") + .WithDescription("This endpoint is used to terminate an existing binding contract.") .Produces(StatusCodes.Status204NoContent) .Produces(StatusCodes.Status404NotFound) .Produces(StatusCodes.Status409Conflict) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateContractEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateContractEndpoint.cs index 35f8132e..d2dddcff 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateContractEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/TerminateBindingContract/TerminateContractEndpoint.cs @@ -19,11 +19,8 @@ internal static void MapTerminateContract(this IEndpointRouteBuilder app) => app return response; }) - .WithOpenApi(operation => new(operation) - { - Summary = "Terminate Binding Contract", - Description = "This endpoint is used to terminate a binding contract by invoking a termination.", - }) + .WithSummary("Terminate Binding Contract") + .WithDescription("This endpoint is used to terminate a binding contract by invoking a termination.") .Produces(StatusCodes.Status204NoContent) .Produces(StatusCodes.Status404NotFound) .Produces(StatusCodes.Status409Conflict) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/GetAllPasses/GetAllPassesEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/GetAllPasses/GetAllPassesEndpoint.cs index 0e1dfcca..3a9f29e0 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/GetAllPasses/GetAllPassesEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/GetAllPasses/GetAllPassesEndpoint.cs @@ -19,12 +19,8 @@ internal static void MapGetAllPasses(this IEndpointRouteBuilder app) => return Results.Ok(response); }) - .WithOpenApi(operation => new(operation) - { - Summary = "Returns all passes that exist in the system", - Description = - "This endpoint is used to retrieve all existing passes.", - }) + .WithSummary("Returns all passes that exist in the system") + .WithDescription("This endpoint is used to retrieve all existing passes.") .Produces() .Produces(StatusCodes.Status500InternalServerError); } \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/MarkPassAsExpired/MarkPassAsExpiredEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/MarkPassAsExpired/MarkPassAsExpiredEndpoint.cs index 4d3714fa..67ac2aa6 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/MarkPassAsExpired/MarkPassAsExpiredEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/MarkPassAsExpired/MarkPassAsExpiredEndpoint.cs @@ -32,12 +32,8 @@ internal static void MapMarkPassAsExpired(this IEndpointRouteBuilder app) => app return Results.NoContent(); }) - .WithOpenApi(operation => new(operation) - { - Summary = "Marks pass which expired", - Description = - "This endpoint is used to mark expired pass. Based on that it is possible to offer new contract to customer.", - }) + .WithSummary("Marks pass which expired") + .WithDescription("This endpoint is used to mark expired pass. Based on that it is possible to offer new contract to customer.") .Produces(StatusCodes.Status204NoContent) .Produces(StatusCodes.Status404NotFound) .Produces(StatusCodes.Status500InternalServerError); diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/GenerateNewPassesRegistrationsPerMonthReport/GenerateNewPassesPerMonthReportEndpoint.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/GenerateNewPassesRegistrationsPerMonthReport/GenerateNewPassesPerMonthReportEndpoint.cs index 93f10202..96911ad4 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/GenerateNewPassesRegistrationsPerMonthReport/GenerateNewPassesPerMonthReportEndpoint.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/GenerateNewPassesRegistrationsPerMonthReport/GenerateNewPassesPerMonthReportEndpoint.cs @@ -18,12 +18,8 @@ internal static void MapGenerateNewPassesRegistrationsPerMonthReport(this IEndpo return Results.Ok(newPassesRegistrationsPerMonthResponse); }) - .WithOpenApi(operation => new(operation) - { - Summary = "Returns report of all passes registered in a month", - Description = - "This endpoint is used to retrieve all passes that were registered in a given month." - }) + .WithSummary("Returns report of all passes registered in a month") + .WithDescription("This endpoint is used to retrieve all passes that were registered in a given month.") .Produces() .Produces(StatusCodes.Status500InternalServerError); } From f7154a1e7ec4fd48f10708c2dc98ef95972fc2ab Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:42:09 +0000 Subject: [PATCH 04/18] Remove unnecessary System.Text.Encodings.Web package references Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Common.Infrastructure.csproj | 1 - .../Fitnet.Contracts.IntegrationEvents.csproj | 1 - 2 files changed, 2 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj index 499343c6..26354f83 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Common/Fitnet.Common.Infrastructure/Fitnet.Common.Infrastructure.csproj @@ -6,6 +6,5 @@ - \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj index 6ef188c9..38c8ad32 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj @@ -5,6 +5,5 @@ - \ No newline at end of file From 194c11df80aeb96c1a0c36da72bce37445b0359f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 08:59:32 +0000 Subject: [PATCH 05/18] Update GitHub Actions workflows to use .NET 10.0.x Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .github/workflows/chapter-4-contracts-workflow.yml | 4 ++-- .github/workflows/chapter-4-package-workflow.yml | 6 +++--- .github/workflows/chapter-4-workflow.yml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/chapter-4-contracts-workflow.yml b/.github/workflows/chapter-4-contracts-workflow.yml index ba6a14aa..3e61ba5c 100644 --- a/.github/workflows/chapter-4-contracts-workflow.yml +++ b/.github/workflows/chapter-4-contracts-workflow.yml @@ -27,7 +27,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Add Evolutionary Architecture Nuget Source uses: evolutionary-architecture/evolutionary-architecture-by-example/.github@main with: @@ -52,7 +52,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Add Evolutionary Architecture Nuget Source uses: evolutionary-architecture/evolutionary-architecture-by-example/.github@main with: diff --git a/.github/workflows/chapter-4-package-workflow.yml b/.github/workflows/chapter-4-package-workflow.yml index 2b1a661c..3738308e 100644 --- a/.github/workflows/chapter-4-package-workflow.yml +++ b/.github/workflows/chapter-4-package-workflow.yml @@ -27,7 +27,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Build @@ -45,7 +45,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Restore dependencies run: dotnet restore - name: Test @@ -64,7 +64,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Pack Projects run: | diff --git a/.github/workflows/chapter-4-workflow.yml b/.github/workflows/chapter-4-workflow.yml index fafe75f2..4824e82d 100644 --- a/.github/workflows/chapter-4-workflow.yml +++ b/.github/workflows/chapter-4-workflow.yml @@ -28,7 +28,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Add Evolutionary Architecture Nuget Source uses: evolutionary-architecture/evolutionary-architecture-by-example/.github@main with: @@ -53,7 +53,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Add Evolutionary Architecture Nuget Source uses: evolutionary-architecture/evolutionary-architecture-by-example/.github@main with: From c9ef0c68462074726d28357b747a4ba470fde54c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 09:05:50 +0000 Subject: [PATCH 06/18] Add .NET Aspire orchestration for Fitnet and Fitnet.Contracts Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Src/Directory.Packages.props | 44 +++++++++++++++++++ .../Fitnet.Contracts.AppHost.csproj | 18 ++++++++ .../Src/Fitnet.Contracts.AppHost/Program.cs | 21 +++++++++ .../Fitnet.Contracts.AppHost/appsettings.json | 9 ++++ .../EventBus/EventBusModule.cs | 19 ++++++++ .../Fitnet.Contracts/Src/Fitnet.Contracts.sln | 6 +++ .../Fitnet/Src/Directory.Packages.props | 34 ++++++++++++++ .../Src/Fitnet.AppHost/Fitnet.AppHost.csproj | 17 +++++++ .../Fitnet/Src/Fitnet.AppHost/Program.cs | 16 +++++++ .../Src/Fitnet.AppHost/appsettings.json | 9 ++++ .../Fitnet/Src/Fitnet.sln | 6 +++ .../Common/EventBus/EventBusModule.cs | 20 +++++++++ 12 files changed, 219 insertions(+) create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Program.cs create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/appsettings.json create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Packages.props create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Program.cs create mode 100644 Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/appsettings.json diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props new file mode 100644 index 00000000..9e005dfa --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props @@ -0,0 +1,44 @@ + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj new file mode 100644 index 00000000..12ffb84a --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj @@ -0,0 +1,18 @@ + + + + Exe + true + + + + + + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Program.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Program.cs new file mode 100644 index 00000000..1248f767 --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Program.cs @@ -0,0 +1,21 @@ +using Projects; + +var builder = DistributedApplication.CreateBuilder(args); + +var postgres = builder.AddPostgres("postgres") + .WithImage("postgres", "14.3") + .WithPgAdmin(); + +var fitnetDatabase = postgres.AddDatabase("fitnetsdb", "fitnet"); + +var rabbitmq = builder.AddRabbitMQ("rabbitmq") + .WithManagementPlugin(); + +builder.AddProject("fitnet-contracts-microservice") + .WithEnvironment("ASPNETCORE_ENVIRONMENT", "Development") + .WithReference(fitnetDatabase, "Database__ConnectionString") + .WithReference(rabbitmq, "EventBus__ConnectionString") + .WaitFor(postgres) + .WaitFor(rabbitmq); + +await builder.Build().RunAsync(); diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/appsettings.json b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/appsettings.json new file mode 100644 index 00000000..c06aa74a --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Aspire.Hosting.DistributedApplication": "Information" + } + } +} diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs index b9c03abf..849465ea 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs @@ -24,6 +24,25 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, return; } + var uri = options.Value.Uri; + var username = options.Value.Username; + var password = options.Value.Password; + + if (!string.IsNullOrEmpty(uri)) + { + factoryConfigurator.Host(uri, h => + { + if (!string.IsNullOrEmpty(username)) + { + h.Username(username); + } + if (!string.IsNullOrEmpty(password)) + { + h.Password(password); + } + }); + } + factoryConfigurator.ConfigureEndpoints(context); }); }); diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.sln b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.sln index 0e93a9f8..65dbb577 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.sln +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.sln @@ -20,6 +20,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fitnet.Contracts.Api.UnitTe EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fitnet.Contracts.IntegrationEvents", "Fitnet.Contracts.IntegrationEvents\Fitnet.Contracts.IntegrationEvents.csproj", "{0A0A7C05-D0FB-4FC3-95D3-1B1511D0B24D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fitnet.Contracts.AppHost", "Fitnet.Contracts.AppHost\Fitnet.Contracts.AppHost.csproj", "{B1C2D3E4-5F6A-7B8C-9D0E-1F2345678901}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -62,6 +64,10 @@ Global {0A0A7C05-D0FB-4FC3-95D3-1B1511D0B24D}.Debug|Any CPU.Build.0 = Debug|Any CPU {0A0A7C05-D0FB-4FC3-95D3-1B1511D0B24D}.Release|Any CPU.ActiveCfg = Release|Any CPU {0A0A7C05-D0FB-4FC3-95D3-1B1511D0B24D}.Release|Any CPU.Build.0 = Release|Any CPU + {B1C2D3E4-5F6A-7B8C-9D0E-1F2345678901}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B1C2D3E4-5F6A-7B8C-9D0E-1F2345678901}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B1C2D3E4-5F6A-7B8C-9D0E-1F2345678901}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B1C2D3E4-5F6A-7B8C-9D0E-1F2345678901}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {ABC9D0F9-7D4F-4C89-8A68-B2DCB5DF93A8} = {FA67FD7C-D24A-4733-B6A5-FF78713CBFCD} diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Packages.props b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Packages.props new file mode 100644 index 00000000..da0c946a --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Directory.Packages.props @@ -0,0 +1,34 @@ + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj new file mode 100644 index 00000000..506b2c51 --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj @@ -0,0 +1,17 @@ + + + + Exe + true + + + + + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Program.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Program.cs new file mode 100644 index 00000000..165c8a88 --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Program.cs @@ -0,0 +1,16 @@ +using Projects; + +var builder = DistributedApplication.CreateBuilder(args); + +var postgres = builder.AddPostgres("postgres") + .WithImage("postgres", "14.3") + .WithPgAdmin(); + +var fitnetDatabase = postgres.AddDatabase("fitnetsdb", "fitnet"); + +builder.AddProject("fitnet-modular-monolith") + .WithEnvironment("ASPNETCORE_ENVIRONMENT", "Development") + .WithReference(fitnetDatabase, "Database__ConnectionString") + .WaitFor(postgres); + +await builder.Build().RunAsync(); diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/appsettings.json b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/appsettings.json new file mode 100644 index 00000000..c06aa74a --- /dev/null +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning", + "Aspire.Hosting.DistributedApplication": "Information" + } + } +} diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.sln b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.sln index 7523a1f5..906b22a6 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.sln +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.sln @@ -2,6 +2,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fitnet", "Fitnet\Fitnet.csproj", "{F794BA2B-0F1A-4D1C-93B8-32B916FDEDEC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fitnet.AppHost", "Fitnet.AppHost\Fitnet.AppHost.csproj", "{A1B2C3D4-5E6F-7890-ABCD-EF1234567890}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{7D3193F0-C731-4683-893F-53CE8087D7E2}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Passes", "Passes", "{732AD772-11C2-4DCC-B6DC-D59EABEF335B}" @@ -78,6 +80,10 @@ Global {76B919C8-0434-4A54-AFD3-07F817CCEC38}.Debug|Any CPU.Build.0 = Debug|Any CPU {76B919C8-0434-4A54-AFD3-07F817CCEC38}.Release|Any CPU.ActiveCfg = Release|Any CPU {76B919C8-0434-4A54-AFD3-07F817CCEC38}.Release|Any CPU.Build.0 = Release|Any CPU + {A1B2C3D4-5E6F-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1B2C3D4-5E6F-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1B2C3D4-5E6F-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1B2C3D4-5E6F-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {B834E435-6093-4174-9AC1-10D2E7398D31} = {732AD772-11C2-4DCC-B6DC-D59EABEF335B} diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs index 5740084e..f6251ef9 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs @@ -26,6 +26,26 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, { return; } + + var uri = options.Value.Uri; + var username = options.Value.Username; + var password = options.Value.Password; + + if (!string.IsNullOrEmpty(uri)) + { + factoryConfigurator.Host(uri, h => + { + if (!string.IsNullOrEmpty(username)) + { + h.Username(username); + } + if (!string.IsNullOrEmpty(password)) + { + h.Password(password); + } + }); + } + factoryConfigurator.ConfigureEndpoints(context); }); configurator.ConfigureOutbox(); From e216d41a2482ffc7af35e56ebf5e6c5c25c22fc2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 09:07:51 +0000 Subject: [PATCH 07/18] Enable Central Package Management and fix package source mapping Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts.Api.UnitTests.csproj | 18 ++++++++--------- .../Fitnet.Contracts.Api.csproj | 4 ++-- .../Fitnet.Contracts.AppHost.csproj | 6 +++--- .../Fitnet.Contracts.Application.csproj | 12 +++++------ .../Fitnet.Contracts.Core.UnitTests.csproj | 20 +++++++++---------- .../Fitnet.Contracts.Core.csproj | 6 +++--- .../Fitnet.Contracts.Infrastructure.csproj | 14 ++++++------- .../Fitnet.Contracts.IntegrationEvents.csproj | 2 +- .../Fitnet.Contracts.IntegrationTests.csproj | 16 +++++++-------- .../Fitnet.Contracts/Fitnet.Contracts.csproj | 6 +++--- .../Fitnet.Contracts/Src/nuget.config | 8 ++++++++ .../Src/Fitnet.AppHost/Fitnet.AppHost.csproj | 4 ++-- .../Fitnet/Src/Fitnet/Fitnet.csproj | 6 +++--- .../Fitnet.Offers.Api.csproj | 3 +-- .../Fitnet.Offers.DataAccess.csproj | 7 +++---- .../Fitnet.Offers.IntegrationTests.csproj | 15 +++++++------- .../Fitnet.Passes.Api.csproj | 15 +++++++------- .../Fitnet.Passes.DataAccess.csproj | 9 ++++----- .../Fitnet.Passes.IntegrationEvents.csproj | 5 ++--- .../Fitnet.Passes.IntegrationTests.csproj | 15 +++++++------- .../Fitnet.Reports/Fitnet.Reports.csproj | 17 ++++++++-------- .../Fitnet.Reports.IntegrationTests.csproj | 15 +++++++------- .../Fitnet/Src/nuget.config | 8 ++++++++ 23 files changed, 119 insertions(+), 112 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj index 3ceeeb28..6a48ccce 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj @@ -1,20 +1,20 @@ - - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj index 9026a590..384cc80c 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api/Fitnet.Contracts.Api.csproj @@ -17,8 +17,8 @@ - - + + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj index 12ffb84a..8815c869 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Application/Fitnet.Contracts.Application.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Application/Fitnet.Contracts.Application.csproj index 1294f88a..db4b8d6a 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Application/Fitnet.Contracts.Application.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Application/Fitnet.Contracts.Application.csproj @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core.UnitTests/Fitnet.Contracts.Core.UnitTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core.UnitTests/Fitnet.Contracts.Core.UnitTests.csproj index d2d4b430..db05a216 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core.UnitTests/Fitnet.Contracts.Core.UnitTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core.UnitTests/Fitnet.Contracts.Core.UnitTests.csproj @@ -5,22 +5,22 @@ - - - - - - + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core/Fitnet.Contracts.Core.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core/Fitnet.Contracts.Core.csproj index ea07f1c6..182d4aba 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core/Fitnet.Contracts.Core.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Core/Fitnet.Contracts.Core.csproj @@ -5,9 +5,9 @@ - - - + + + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj index cac124a7..00616085 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj @@ -5,13 +5,13 @@ - - - - - - - + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj index 38c8ad32..094aec41 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationEvents/Fitnet.Contracts.IntegrationEvents.csproj @@ -4,6 +4,6 @@ 1.0.7 - + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj index ee4ae696..5bce0939 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj @@ -5,14 +5,14 @@ - - - - - - - - + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts/Fitnet.Contracts.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts/Fitnet.Contracts.csproj index d1d1b3fd..9e9d68a9 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts/Fitnet.Contracts.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts/Fitnet.Contracts.csproj @@ -5,9 +5,9 @@ - - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/nuget.config b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/nuget.config index ebc8ad3a..e6aa1996 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/nuget.config +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/nuget.config @@ -10,6 +10,14 @@ + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj index 506b2c51..2ab2b26f 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj index 21938edf..44ae7601 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet/Fitnet.csproj @@ -5,9 +5,9 @@ - - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj index 7055d16d..25f478f7 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.Api/Fitnet.Offers.Api.csproj @@ -14,8 +14,7 @@ - - + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj index a89c78b2..04928e00 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Fitnet.Offers.DataAccess.csproj @@ -1,8 +1,7 @@ - - - - + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj index f1f6f83b..07af3e7f 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj @@ -5,14 +5,13 @@ - - - - - - - - + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj index 8ddf94db..83319935 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Fitnet.Passes.Api.csproj @@ -15,13 +15,12 @@ - - - - - - - - + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj index d10e1c48..4c85000d 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Fitnet.Passes.DataAccess.csproj @@ -1,10 +1,9 @@ - - - - - + + + + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj index 382964d3..c538c004 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.IntegrationEvents/Fitnet.Passes.IntegrationEvents.csproj @@ -1,9 +1,8 @@ - + - - + \ No newline at end of file diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj index c81a6bc7..9c0fbc64 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj @@ -5,14 +5,13 @@ - - - - - - - - + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj index d86e5b94..44618532 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Fitnet.Reports/Fitnet.Reports.csproj @@ -3,15 +3,14 @@ - - - - - - - - - + + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj index 69e37ea8..cd1840d6 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj @@ -5,14 +5,13 @@ - - - - - - - - + + + + + + + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/nuget.config b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/nuget.config index d4fe5249..56d956e1 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/nuget.config +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/nuget.config @@ -10,6 +10,14 @@ + + + + + + + + From f48de100129c385f0cd01ed1e221427366d5270d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 09:09:32 +0000 Subject: [PATCH 08/18] Fix duplicate project reference and align package versions across solutions Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts/Src/Directory.Packages.props | 6 +++--- .../Fitnet.Contracts.Api.UnitTests.csproj | 4 ---- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props index 9e005dfa..d82425af 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Directory.Packages.props @@ -9,7 +9,7 @@ - + @@ -25,13 +25,13 @@ - + - + diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj index 6a48ccce..5c241224 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Api.UnitTests/Fitnet.Contracts.Api.UnitTests.csproj @@ -28,9 +28,5 @@ - - - - \ No newline at end of file From 09dcd2548936aad8628303bb23a19b5f8807a084 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 11:19:26 +0000 Subject: [PATCH 09/18] Remove unnecessary Microsoft.AspNetCore.Http.Abstractions package reference Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts.Infrastructure.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj index 00616085..aac3070c 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Fitnet.Contracts.Infrastructure.csproj @@ -8,7 +8,6 @@ - From 132d5f3b242a8458b637a9b6ccf1eec4a225caf9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 16:36:56 +0000 Subject: [PATCH 10/18] Remove unnecessary System.Text.RegularExpressions package references Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts.IntegrationTests.csproj | 1 - .../Fitnet.Offers.IntegrationTests.csproj | 1 - .../Fitnet.Passes.IntegrationTests.csproj | 1 - .../Fitnet.Reports.IntegrationTests.csproj | 1 - 4 files changed, 4 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj index 5bce0939..99d3e774 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj @@ -12,7 +12,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj index 07af3e7f..93c7f077 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj @@ -11,7 +11,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj index 9c0fbc64..675db230 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj @@ -10,7 +10,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj index cd1840d6..ecb7d7af 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj @@ -10,7 +10,6 @@ - From f8665c6c983b6f7746b969ce393724898f2ebc1c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 17:19:50 +0000 Subject: [PATCH 11/18] Remove unnecessary System.Net.Http package references Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts.IntegrationTests.csproj | 1 - .../Fitnet.Offers.IntegrationTests.csproj | 1 - .../Fitnet.Passes.IntegrationTests.csproj | 1 - .../Fitnet.Reports.IntegrationTests.csproj | 1 - 4 files changed, 4 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj index 99d3e774..ca3e912b 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj @@ -10,7 +10,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj index 93c7f077..f3717e85 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj @@ -9,7 +9,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj index 675db230..afcbdbbc 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj @@ -8,7 +8,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj index ecb7d7af..ce12e6bc 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj @@ -8,7 +8,6 @@ - From 039187326c1f18a973c0fc2d2cabc67c0758e143 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:31:51 +0000 Subject: [PATCH 12/18] Remove unnecessary System.Text.Json package references Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts.IntegrationTests.csproj | 1 - .../Fitnet.Offers.IntegrationTests.csproj | 1 - .../Fitnet.Passes.IntegrationTests.csproj | 1 - .../Fitnet.Reports.IntegrationTests.csproj | 1 - 4 files changed, 4 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj index ca3e912b..7240619f 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.IntegrationTests/Fitnet.Contracts.IntegrationTests.csproj @@ -10,7 +10,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj index f3717e85..ffff88b1 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Tests/Fitnet.Offers.IntegrationTests/Fitnet.Offers.IntegrationTests.csproj @@ -9,7 +9,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj index afcbdbbc..0eae106a 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Tests/Fitnet.Passes.IntegrationTests/Fitnet.Passes.IntegrationTests.csproj @@ -8,7 +8,6 @@ - diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj index ce12e6bc..cc68b42a 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Reports/Tests/Fitnet.Reports.IntegrationTests/Fitnet.Reports.IntegrationTests.csproj @@ -8,7 +8,6 @@ - From 60b1d580e5f7a0f1993375feeed25ab5bc4439c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 18:50:19 +0000 Subject: [PATCH 13/18] Fix Aspire workload deprecation and code formatting issues Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj | 1 - .../Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj | 1 - .../Database/Migrations/20230503180337_CreateOffersTable.cs | 1 + .../Database/Migrations/20230503180338_CreatePassesTable.cs | 1 + 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj index 8815c869..2d69140b 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj @@ -2,7 +2,6 @@ Exe - true diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj index 2ab2b26f..d5f79c61 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj @@ -2,7 +2,6 @@ Exe - true diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Database/Migrations/20230503180337_CreateOffersTable.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Database/Migrations/20230503180337_CreateOffersTable.cs index 8480b7c2..b6852185 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Database/Migrations/20230503180337_CreateOffersTable.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Offers/Fitnet.Offers.DataAccess/Database/Migrations/20230503180337_CreateOffersTable.cs @@ -1,6 +1,7 @@ #nullable disable namespace SuperSimpleArchitecture.Fitnet.Migrations.OffersPersistenceMigrations; + using System; using System.Diagnostics.CodeAnalysis; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Database/Migrations/20230503180338_CreatePassesTable.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Database/Migrations/20230503180338_CreatePassesTable.cs index 2f854018..b1d93547 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Database/Migrations/20230503180338_CreatePassesTable.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.DataAccess/Database/Migrations/20230503180338_CreatePassesTable.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Passes.DataAccess.Database; + using System; using Microsoft.EntityFrameworkCore.Migrations; From fb1b8fc99d8f488062fa4a0f7e6382d7b679d983 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 24 Jan 2026 23:46:07 +0000 Subject: [PATCH 14/18] Fix code formatting in Fitnet.Contracts migration files Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Migrations/20230601184153_MakeSignedAtColumnNullable.cs | 1 + .../Database/Migrations/20230601184328_AddCustomerIdColumn.cs | 1 + ...30624171216_ContractsAddColumnsToSupportContractExpiration.cs | 1 + .../Migrations/20240314062526_AddBindingContractTable.cs | 1 + ...20240507073145_ChangeBindingContractTerminatedAtToNullable.cs | 1 + .../Database/Migrations/20241026165318_AddSignature.cs | 1 + 6 files changed, 6 insertions(+) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184153_MakeSignedAtColumnNullable.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184153_MakeSignedAtColumnNullable.cs index 8b35b64c..9edfabc1 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184153_MakeSignedAtColumnNullable.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184153_MakeSignedAtColumnNullable.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Contracts.Data.Database.Migrations; + using System; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184328_AddCustomerIdColumn.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184328_AddCustomerIdColumn.cs index cf6a802e..9d2c633a 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184328_AddCustomerIdColumn.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230601184328_AddCustomerIdColumn.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Contracts.Data.Database.Migrations; + using System; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230624171216_ContractsAddColumnsToSupportContractExpiration.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230624171216_ContractsAddColumnsToSupportContractExpiration.cs index 9afbaab9..609ed7f7 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230624171216_ContractsAddColumnsToSupportContractExpiration.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20230624171216_ContractsAddColumnsToSupportContractExpiration.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Contracts.Data.Database.Migrations; + using System; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240314062526_AddBindingContractTable.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240314062526_AddBindingContractTable.cs index 693d8108..d7016004 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240314062526_AddBindingContractTable.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240314062526_AddBindingContractTable.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Contracts.Data.Database.Migrations; + using System; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240507073145_ChangeBindingContractTerminatedAtToNullable.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240507073145_ChangeBindingContractTerminatedAtToNullable.cs index 35168c70..19bf460f 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240507073145_ChangeBindingContractTerminatedAtToNullable.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20240507073145_ChangeBindingContractTerminatedAtToNullable.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Contracts.Infrastructure.Database.Migrations; + using System; using Microsoft.EntityFrameworkCore.Migrations; diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20241026165318_AddSignature.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20241026165318_AddSignature.cs index f5f85dd2..1effbd74 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20241026165318_AddSignature.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/Database/Migrations/20241026165318_AddSignature.cs @@ -1,6 +1,7 @@ #nullable disable namespace EvolutionaryArchitecture.Fitnet.Contracts.Infrastructure.Database.Migrations; + using Microsoft.EntityFrameworkCore.Migrations; /// From 85dac6de4718663b1f04f8a5dfafe7bbe0dc2266 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 08:11:05 +0000 Subject: [PATCH 15/18] Fix null reference warning in EventBusModule files Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../EventBus/EventBusModule.cs | 9 +++++---- .../Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs index 849465ea..b589f35d 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs @@ -18,15 +18,16 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, configurator.UsingRabbitMq((context, factoryConfigurator) => { var options = context.GetRequiredService>(); - var externalEventBusConfigured = options.Value is not null; + var eventBusOptions = options.Value; + var externalEventBusConfigured = eventBusOptions is not null; if (!externalEventBusConfigured) { return; } - var uri = options.Value.Uri; - var username = options.Value.Username; - var password = options.Value.Password; + var uri = eventBusOptions.Uri; + var username = eventBusOptions.Username; + var password = eventBusOptions.Password; if (!string.IsNullOrEmpty(uri)) { diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs index f6251ef9..617523ac 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs @@ -21,15 +21,16 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, configurator.UsingRabbitMq((context, factoryConfigurator) => { var options = context.GetRequiredService>(); - var externalEventBusConfigured = options.Value is not null; + var eventBusOptions = options.Value; + var externalEventBusConfigured = eventBusOptions is not null; if (!externalEventBusConfigured) { return; } - var uri = options.Value.Uri; - var username = options.Value.Username; - var password = options.Value.Password; + var uri = eventBusOptions.Uri; + var username = eventBusOptions.Username; + var password = eventBusOptions.Password; if (!string.IsNullOrEmpty(uri)) { From 074fc82a1b9dca564d48d443bfd12b7020813dc5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 08:17:00 +0000 Subject: [PATCH 16/18] Simplify null check in EventBusModule to fix CS8602 warning Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs | 3 +-- .../Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs index b589f35d..510044cb 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs @@ -19,8 +19,7 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, { var options = context.GetRequiredService>(); var eventBusOptions = options.Value; - var externalEventBusConfigured = eventBusOptions is not null; - if (!externalEventBusConfigured) + if (eventBusOptions is null) { return; } diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs index 617523ac..23389d71 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs @@ -22,8 +22,7 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, { var options = context.GetRequiredService>(); var eventBusOptions = options.Value; - var externalEventBusConfigured = eventBusOptions is not null; - if (!externalEventBusConfigured) + if (eventBusOptions is null) { return; } From 0a3db9dbc645957e4ee7214a5b06c1b547255e07 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 08:20:19 +0000 Subject: [PATCH 17/18] Add null-forgiving operator to fix CS8602 warnings in EventBusModule Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../EventBus/EventBusModule.cs | 6 +++--- .../Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs index 510044cb..186a460f 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.Infrastructure/EventBus/EventBusModule.cs @@ -24,9 +24,9 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, return; } - var uri = eventBusOptions.Uri; - var username = eventBusOptions.Username; - var password = eventBusOptions.Password; + var uri = eventBusOptions!.Uri; + var username = eventBusOptions!.Username; + var password = eventBusOptions!.Password; if (!string.IsNullOrEmpty(uri)) { diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs index 23389d71..7fd48715 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Passes/Fitnet.Passes.Api/Common/EventBus/EventBusModule.cs @@ -27,9 +27,9 @@ internal static IServiceCollection AddEventBus(this IServiceCollection services, return; } - var uri = eventBusOptions.Uri; - var username = eventBusOptions.Username; - var password = eventBusOptions.Password; + var uri = eventBusOptions!.Uri; + var username = eventBusOptions!.Username; + var password = eventBusOptions!.Password; if (!string.IsNullOrEmpty(uri)) { From e9fb3743b15b34f6cdcca4550a226900f5c290ad Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 25 Jan 2026 08:25:13 +0000 Subject: [PATCH 18/18] Add Aspire.AppHost.Sdk to both AppHost projects Co-authored-by: kamilbaczek <74410956+kamilbaczek@users.noreply.github.com> --- .../Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj | 1 + .../Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj index 2d69140b..17bdc845 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet.Contracts/Src/Fitnet.Contracts.AppHost/Fitnet.Contracts.AppHost.csproj @@ -1,4 +1,5 @@ + Exe diff --git a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj index d5f79c61..0e64a105 100644 --- a/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj +++ b/Chapter-4-applying-tactical-domain-driven-design/Fitnet/Src/Fitnet.AppHost/Fitnet.AppHost.csproj @@ -1,4 +1,5 @@ + Exe