From d415d562a438a4bc7a5437ba08612b20c5244bc8 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Fri, 6 Aug 2021 10:19:00 +0100 Subject: [PATCH 1/3] Using shared confguration --- ...stateManagement.BusinessLogic.Tests.csproj | 2 +- .../EstateManagement.BusinessLogic.csproj | 4 +- .../EstateManagement.Client.csproj | 2 +- ...ateManagement.Contract.DomainEvents.csproj | 2 +- .../EstateManagement.ContractAggregate.csproj | 4 +- ...stateManagement.Estate.DomainEvents.csproj | 2 +- ...ateManagement.EstateAggregate.Tests.csproj | 2 +- .../EstateManagement.EstateAggregate.csproj | 4 +- .../EstateManagement.IntegrationTests.csproj | 10 ++--- ...ateManagement.Merchant.DomainEvents.csproj | 2 +- .../EstateManagement.MerchantAggregate.csproj | 2 +- .../EstateManagement.Models.csproj | 2 +- .../EstateManagement.Repository.csproj | 2 +- .../EstateManagement.Testing.csproj | 2 +- EstateManagement/Dockerfile | 2 +- EstateManagement/Dockerfilewindows | 2 +- EstateManagement/Startup.cs | 11 ++++- EstateManagement/appsettings.json | 45 +------------------ 18 files changed, 35 insertions(+), 67 deletions(-) diff --git a/EstateManagement.BusinessLogic.Tests/EstateManagement.BusinessLogic.Tests.csproj b/EstateManagement.BusinessLogic.Tests/EstateManagement.BusinessLogic.Tests.csproj index 389afc77..0739ab15 100644 --- a/EstateManagement.BusinessLogic.Tests/EstateManagement.BusinessLogic.Tests.csproj +++ b/EstateManagement.BusinessLogic.Tests/EstateManagement.BusinessLogic.Tests.csproj @@ -13,7 +13,7 @@ - + diff --git a/EstateManagement.BusinessLogic/EstateManagement.BusinessLogic.csproj b/EstateManagement.BusinessLogic/EstateManagement.BusinessLogic.csproj index 0a931d70..62cd9c75 100644 --- a/EstateManagement.BusinessLogic/EstateManagement.BusinessLogic.csproj +++ b/EstateManagement.BusinessLogic/EstateManagement.BusinessLogic.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/EstateManagement.Client/EstateManagement.Client.csproj b/EstateManagement.Client/EstateManagement.Client.csproj index bba59795..cf2b8955 100644 --- a/EstateManagement.Client/EstateManagement.Client.csproj +++ b/EstateManagement.Client/EstateManagement.Client.csproj @@ -7,7 +7,7 @@ - + diff --git a/EstateManagement.Contract.DomainEvents/EstateManagement.Contract.DomainEvents.csproj b/EstateManagement.Contract.DomainEvents/EstateManagement.Contract.DomainEvents.csproj index fe145c41..cadc0b2b 100644 --- a/EstateManagement.Contract.DomainEvents/EstateManagement.Contract.DomainEvents.csproj +++ b/EstateManagement.Contract.DomainEvents/EstateManagement.Contract.DomainEvents.csproj @@ -5,7 +5,7 @@ - + diff --git a/EstateManagement.ContractAggregate/EstateManagement.ContractAggregate.csproj b/EstateManagement.ContractAggregate/EstateManagement.ContractAggregate.csproj index 0065f844..310bb94c 100644 --- a/EstateManagement.ContractAggregate/EstateManagement.ContractAggregate.csproj +++ b/EstateManagement.ContractAggregate/EstateManagement.ContractAggregate.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/EstateManagement.Estate.DomainEvents/EstateManagement.Estate.DomainEvents.csproj b/EstateManagement.Estate.DomainEvents/EstateManagement.Estate.DomainEvents.csproj index 296e2f30..1088fc90 100644 --- a/EstateManagement.Estate.DomainEvents/EstateManagement.Estate.DomainEvents.csproj +++ b/EstateManagement.Estate.DomainEvents/EstateManagement.Estate.DomainEvents.csproj @@ -5,6 +5,6 @@ - + diff --git a/EstateManagement.EstateAggregate.Tests/EstateManagement.EstateAggregate.Tests.csproj b/EstateManagement.EstateAggregate.Tests/EstateManagement.EstateAggregate.Tests.csproj index 48f0b5ba..55fc85bb 100644 --- a/EstateManagement.EstateAggregate.Tests/EstateManagement.EstateAggregate.Tests.csproj +++ b/EstateManagement.EstateAggregate.Tests/EstateManagement.EstateAggregate.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/EstateManagement.EstateAggregate/EstateManagement.EstateAggregate.csproj b/EstateManagement.EstateAggregate/EstateManagement.EstateAggregate.csproj index c97093ed..9bf8e38e 100644 --- a/EstateManagement.EstateAggregate/EstateManagement.EstateAggregate.csproj +++ b/EstateManagement.EstateAggregate/EstateManagement.EstateAggregate.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/EstateManagement.IntegrationTests/EstateManagement.IntegrationTests.csproj b/EstateManagement.IntegrationTests/EstateManagement.IntegrationTests.csproj index 2e887f8a..e732618c 100644 --- a/EstateManagement.IntegrationTests/EstateManagement.IntegrationTests.csproj +++ b/EstateManagement.IntegrationTests/EstateManagement.IntegrationTests.csproj @@ -7,9 +7,9 @@ - + - + @@ -17,9 +17,9 @@ - - - + + + diff --git a/EstateManagement.Merchant.DomainEvents/EstateManagement.Merchant.DomainEvents.csproj b/EstateManagement.Merchant.DomainEvents/EstateManagement.Merchant.DomainEvents.csproj index 0b77baaf..d80302ef 100644 --- a/EstateManagement.Merchant.DomainEvents/EstateManagement.Merchant.DomainEvents.csproj +++ b/EstateManagement.Merchant.DomainEvents/EstateManagement.Merchant.DomainEvents.csproj @@ -5,7 +5,7 @@ - + diff --git a/EstateManagement.MerchantAggregate/EstateManagement.MerchantAggregate.csproj b/EstateManagement.MerchantAggregate/EstateManagement.MerchantAggregate.csproj index 47bbde27..10ec9679 100644 --- a/EstateManagement.MerchantAggregate/EstateManagement.MerchantAggregate.csproj +++ b/EstateManagement.MerchantAggregate/EstateManagement.MerchantAggregate.csproj @@ -5,7 +5,7 @@ - + diff --git a/EstateManagement.Models/EstateManagement.Models.csproj b/EstateManagement.Models/EstateManagement.Models.csproj index c6adb214..bd67f2aa 100644 --- a/EstateManagement.Models/EstateManagement.Models.csproj +++ b/EstateManagement.Models/EstateManagement.Models.csproj @@ -5,7 +5,7 @@ - + diff --git a/EstateManagement.Repository/EstateManagement.Repository.csproj b/EstateManagement.Repository/EstateManagement.Repository.csproj index 2fdfcf43..2cda12c7 100644 --- a/EstateManagement.Repository/EstateManagement.Repository.csproj +++ b/EstateManagement.Repository/EstateManagement.Repository.csproj @@ -5,7 +5,7 @@ - + diff --git a/EstateManagement.Testing/EstateManagement.Testing.csproj b/EstateManagement.Testing/EstateManagement.Testing.csproj index 358bb77f..de93671e 100644 --- a/EstateManagement.Testing/EstateManagement.Testing.csproj +++ b/EstateManagement.Testing/EstateManagement.Testing.csproj @@ -6,7 +6,7 @@ - + diff --git a/EstateManagement/Dockerfile b/EstateManagement/Dockerfile index b41f0785..646fe117 100644 --- a/EstateManagement/Dockerfile +++ b/EstateManagement/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base +FROM stuartferguson/txnprocbase AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:5.0.102-ca-patch-buster-slim AS build diff --git a/EstateManagement/Dockerfilewindows b/EstateManagement/Dockerfilewindows index a544b927..54bcdaa8 100644 --- a/EstateManagement/Dockerfilewindows +++ b/EstateManagement/Dockerfilewindows @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:5.0-windowsservercore-ltsc2019 AS base +FROM stuartferguson/txnprocbasewindows AS base USER ContainerAdministrator WORKDIR /app diff --git a/EstateManagement/Startup.cs b/EstateManagement/Startup.cs index a6c9513a..80a2567b 100644 --- a/EstateManagement/Startup.cs +++ b/EstateManagement/Startup.cs @@ -79,8 +79,11 @@ public class Startup public Startup(IWebHostEnvironment webHostEnvironment) { IConfigurationBuilder builder = new ConfigurationBuilder().SetBasePath(webHostEnvironment.ContentRootPath) + .AddJsonFile("/home/txnproc/config/appsettings.json", true, true) + .AddJsonFile($"/home/txnproc/config/appsettings.{webHostEnvironment.EnvironmentName}.json", optional: true) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) - .AddJsonFile($"appsettings.{webHostEnvironment.EnvironmentName}.json", optional: true).AddEnvironmentVariables(); + .AddJsonFile($"appsettings.{webHostEnvironment.EnvironmentName}.json", optional: true, reloadOnChange: true) + .AddEnvironmentVariables(); Startup.Configuration = builder.Build(); Startup.WebHostEnvironment = webHostEnvironment; @@ -362,6 +365,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF Logger.Initialise(logger); + Action loggerAction = message => + { + Logger.LogInformation(message); + }; + Startup.Configuration.LogConfiguration(loggerAction); + ConfigurationReader.Initialise(Startup.Configuration); app.AddRequestLogging(); diff --git a/EstateManagement/appsettings.json b/EstateManagement/appsettings.json index 97bf7f8f..19c17528 100644 --- a/EstateManagement/appsettings.json +++ b/EstateManagement/appsettings.json @@ -1,46 +1,5 @@ { - "Logging": { - "LogLevel": { - "Default": "Trace", - "Microsoft": "Trace", - "Microsoft.Hosting.Lifetime": "Trace" - } - }, - "EventStoreSettings": { - "ConnectionString": "https://192.168.1.133:2113", - "ConnectionName": "Estate Management", - "UserName": "admin", - "Password": "changeit", - "START_PROJECTIONS": false, - "ContinuousProjectionsFolder": "" - }, - "ConnectionStrings": { - "ConnectionStringConfiguration": "server=192.168.1.133;database=ConnectionStringConfiguration;user id=sa;password=Sc0tland", - "EstateReportingReadModel": "server=192.168.1.133;user id=sa;password=Sc0tland;database=EstateReportingReadModel", - "HealthCheck": "server=192.168.1.133;user id=sa;password=Sc0tland;database=master" - }, - "AppSettings": { - "HandlerEventTypesToSilentlyHandle": { - }, - "UseConnectionStringConfig": false, - "SecurityService": "https://192.168.1.133:5001" - }, "SecurityConfiguration": { - "ApiName": "estateManagement", - "Authority": "https://192.168.1.133:5001" - }, - "AllowedHosts": "*", - //"HealthChecksUI": { - // "HealthChecks": [ - // { - // "Name": "Http and UI on single project", - // "Uri": "http://localhost:5000/health", - - - // } - // ], - // "Webhooks": [], - // "EvaluationTimeinSeconds": 10, - // "MinimumSecondsBetweenFailureNotifications": 60 - //} + "ApiName": "estateManagement" + } } From 89249e59dee564cd0796804904aa4ab517f5a263 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Fri, 6 Aug 2021 13:21:23 +0100 Subject: [PATCH 2/3] Fix newtonsoft reference --- .../EstateManagement.DataTransferObjects.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EstateManagement.DataTransferObjects/EstateManagement.DataTransferObjects.csproj b/EstateManagement.DataTransferObjects/EstateManagement.DataTransferObjects.csproj index 7738baa3..479dc060 100644 --- a/EstateManagement.DataTransferObjects/EstateManagement.DataTransferObjects.csproj +++ b/EstateManagement.DataTransferObjects/EstateManagement.DataTransferObjects.csproj @@ -10,7 +10,7 @@ - + From b873a89655fe8efc3b00bc6197211499750fde90 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Fri, 6 Aug 2021 13:30:19 +0100 Subject: [PATCH 3/3] Retry on balance check --- .../Shared/SharedSteps.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/EstateManagement.IntegrationTests/Shared/SharedSteps.cs b/EstateManagement.IntegrationTests/Shared/SharedSteps.cs index 0743390b..d34b08b8 100644 --- a/EstateManagement.IntegrationTests/Shared/SharedSteps.cs +++ b/EstateManagement.IntegrationTests/Shared/SharedSteps.cs @@ -410,12 +410,20 @@ public async Task ThenTheMerchantBalancesAreAsFollows(Table table) Decimal availableBalance = SpecflowTableHelper.GetDecimalValue(tableRow, "AvailableBalance"); Decimal balance = SpecflowTableHelper.GetDecimalValue(tableRow, "Balance"); - MerchantBalanceResponse merchantBalanceResponse = await this.TestingContext.DockerHelper.EstateClient.GetMerchantBalance(token, estateDetails.EstateId, merchantId, CancellationToken.None).ConfigureAwait(false); + await Retry.For(async () => + { + MerchantBalanceResponse merchantBalanceResponse = await this.TestingContext.DockerHelper.EstateClient + .GetMerchantBalance(token, + estateDetails.EstateId, + merchantId, + CancellationToken.None).ConfigureAwait(false); + + merchantBalanceResponse.EstateId.ShouldBe(estateDetails.EstateId); + merchantBalanceResponse.MerchantId.ShouldBe(merchantId); + merchantBalanceResponse.AvailableBalance.ShouldBe(availableBalance); + merchantBalanceResponse.Balance.ShouldBe(balance); + }); - merchantBalanceResponse.EstateId.ShouldBe(estateDetails.EstateId); - merchantBalanceResponse.MerchantId.ShouldBe(merchantId); - merchantBalanceResponse.AvailableBalance.ShouldBe(availableBalance); - merchantBalanceResponse.Balance.ShouldBe(balance); } }