From 7f738e64a6f8e892c03c6db74ec89ff3f1184b48 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Fri, 6 Aug 2021 15:01:08 +0100 Subject: [PATCH 1/2] Use shared configuration --- .../TransactionProcessor.BusinessLogic.csproj | 4 +-- .../TransactionProcessor.Client.csproj | 2 +- ...ansactionProcessor.IntegrationTests.csproj | 4 +-- ...ocessor.Reconciliation.DomainEvents.csproj | 2 +- ...onProcessor.ReconciliationAggregate.csproj | 2 +- ...nProcessor.Transaction.DomainEvents.csproj | 2 +- ...ctionProcessor.TransactionAggregate.csproj | 2 +- TransactionProcessor/Dockerfile | 2 +- TransactionProcessor/Startup.cs | 11 +++++- .../TransactionProcessor.csproj | 2 +- TransactionProcessor/appsettings.json | 34 ++----------------- 11 files changed, 23 insertions(+), 44 deletions(-) diff --git a/TransactionProcessor.BusinessLogic/TransactionProcessor.BusinessLogic.csproj b/TransactionProcessor.BusinessLogic/TransactionProcessor.BusinessLogic.csproj index 3c7110a1..0ac70085 100644 --- a/TransactionProcessor.BusinessLogic/TransactionProcessor.BusinessLogic.csproj +++ b/TransactionProcessor.BusinessLogic/TransactionProcessor.BusinessLogic.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/TransactionProcessor.Client/TransactionProcessor.Client.csproj b/TransactionProcessor.Client/TransactionProcessor.Client.csproj index 5525e547..48340fbf 100644 --- a/TransactionProcessor.Client/TransactionProcessor.Client.csproj +++ b/TransactionProcessor.Client/TransactionProcessor.Client.csproj @@ -6,7 +6,7 @@ - + diff --git a/TransactionProcessor.IntegrationTests/TransactionProcessor.IntegrationTests.csproj b/TransactionProcessor.IntegrationTests/TransactionProcessor.IntegrationTests.csproj index 9e298c5b..1e40c8d4 100644 --- a/TransactionProcessor.IntegrationTests/TransactionProcessor.IntegrationTests.csproj +++ b/TransactionProcessor.IntegrationTests/TransactionProcessor.IntegrationTests.csproj @@ -7,7 +7,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/TransactionProcessor.Reconciliation.DomainEvents/TransactionProcessor.Reconciliation.DomainEvents.csproj b/TransactionProcessor.Reconciliation.DomainEvents/TransactionProcessor.Reconciliation.DomainEvents.csproj index df3f255c..30825962 100644 --- a/TransactionProcessor.Reconciliation.DomainEvents/TransactionProcessor.Reconciliation.DomainEvents.csproj +++ b/TransactionProcessor.Reconciliation.DomainEvents/TransactionProcessor.Reconciliation.DomainEvents.csproj @@ -5,6 +5,6 @@ - + diff --git a/TransactionProcessor.ReconciliationAggregate/TransactionProcessor.ReconciliationAggregate.csproj b/TransactionProcessor.ReconciliationAggregate/TransactionProcessor.ReconciliationAggregate.csproj index f97fce67..bf376d08 100644 --- a/TransactionProcessor.ReconciliationAggregate/TransactionProcessor.ReconciliationAggregate.csproj +++ b/TransactionProcessor.ReconciliationAggregate/TransactionProcessor.ReconciliationAggregate.csproj @@ -5,7 +5,7 @@ - + diff --git a/TransactionProcessor.Transaction.DomainEvents/TransactionProcessor.Transaction.DomainEvents.csproj b/TransactionProcessor.Transaction.DomainEvents/TransactionProcessor.Transaction.DomainEvents.csproj index 0b77baaf..d80302ef 100644 --- a/TransactionProcessor.Transaction.DomainEvents/TransactionProcessor.Transaction.DomainEvents.csproj +++ b/TransactionProcessor.Transaction.DomainEvents/TransactionProcessor.Transaction.DomainEvents.csproj @@ -5,7 +5,7 @@ - + diff --git a/TransactionProcessor.TransactionAgrgegate/TransactionProcessor.TransactionAggregate.csproj b/TransactionProcessor.TransactionAgrgegate/TransactionProcessor.TransactionAggregate.csproj index be3a18f4..307fc243 100644 --- a/TransactionProcessor.TransactionAgrgegate/TransactionProcessor.TransactionAggregate.csproj +++ b/TransactionProcessor.TransactionAgrgegate/TransactionProcessor.TransactionAggregate.csproj @@ -5,7 +5,7 @@ - + diff --git a/TransactionProcessor/Dockerfile b/TransactionProcessor/Dockerfile index ffcf9b8b..51b9532f 100644 --- a/TransactionProcessor/Dockerfile +++ b/TransactionProcessor/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base +FROM stuartferguson/txnprocbase:latest AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/sdk:5.0.102-ca-patch-buster-slim AS build diff --git a/TransactionProcessor/Startup.cs b/TransactionProcessor/Startup.cs index 747e6306..6bf7ecbd 100644 --- a/TransactionProcessor/Startup.cs +++ b/TransactionProcessor/Startup.cs @@ -71,8 +71,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; @@ -386,6 +389,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF Logger.Initialise(logger); + Action loggerAction = message => + { + Logger.LogInformation(message); + }; + Startup.Configuration.LogConfiguration(loggerAction); + foreach (KeyValuePair type in TypeMap.Map) { Logger.LogInformation($"Type name {type.Value} mapped to {type.Key.Name}"); diff --git a/TransactionProcessor/TransactionProcessor.csproj b/TransactionProcessor/TransactionProcessor.csproj index b3befc57..499fa7c1 100644 --- a/TransactionProcessor/TransactionProcessor.csproj +++ b/TransactionProcessor/TransactionProcessor.csproj @@ -29,7 +29,7 @@ - + diff --git a/TransactionProcessor/appsettings.json b/TransactionProcessor/appsettings.json index 7162c6ef..1b36c3f0 100644 --- a/TransactionProcessor/appsettings.json +++ b/TransactionProcessor/appsettings.json @@ -1,33 +1,6 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "EventStoreSettings": { - "ConnectionString": "https://192.168.1.133:2113", - "ConnectionName": "Transaction Processor", - "UserName": "admin", - "Password": "changeit", - "START_PROJECTIONS": false, - "ContinuousProjectionsFolder": "", - "TcpPort": 1113, - "PersistentSubscriptionPollingInSeconds": 30 - }, - "ConnectionStrings": { - //"ConnectionStringConfiguration": "server=192.168.1.133;database=ConnectionStringConfiguration;user id=sa;password=Sc0tland" - }, "AppSettings": { "SubscriptionFilter": "Transaction Processor", - "HandlerEventTypesToSilentlyHandle": { - }, - "UseConnectionStringConfig": false, - "SecurityService": "https://192.168.1.133:5001", - "EstateManagementApi": "http://192.168.1.133:5000", - "MessagingServiceApi": "http://192.168.1.133:5006", - "VoucherManagementApi": "http://192.168.1.133:5007", "ClientId": "serviceClient", "ClientSecret": "d192cbc46d834d0da90e8a9d50ded543", "EventHandlerConfiguration": { @@ -40,10 +13,8 @@ } }, "SecurityConfiguration": { - "ApiName": "transactionProcessor", - "Authority": "https://192.168.1.133:5001" + "ApiName": "transactionProcessor" }, - "AllowedHosts": "*", "OperatorConfiguration": { "Safaricom": { "Url": "http://192.168.1.133:9000/api/safaricom", @@ -51,8 +22,7 @@ "MSISDN": "700945625", "Pin": "0322", "Password": "@SafePay33", - "ExtCode": "SA" - + "ExtCode": "SA" } } } \ No newline at end of file From 70bdd178864f6cd202808f8a967659888ddeb306 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Fri, 6 Aug 2021 15:21:29 +0100 Subject: [PATCH 2/2] Added retry on balance check --- .../Shared/SharedSteps.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/TransactionProcessor.IntegrationTests/Shared/SharedSteps.cs b/TransactionProcessor.IntegrationTests/Shared/SharedSteps.cs index 21efc2aa..b1f15e08 100644 --- a/TransactionProcessor.IntegrationTests/Shared/SharedSteps.cs +++ b/TransactionProcessor.IntegrationTests/Shared/SharedSteps.cs @@ -790,10 +790,18 @@ public async Task GivenIMakeTheFollowingManualMerchantDeposits(Table table) this.TestingContext.Logger.LogInformation($"Deposit Reference {makeMerchantDepositRequest.Reference} made for Merchant {merchantName}"); - // Check the merchant balance - MerchantBalanceResponse currentMerchantBalance = await this.TestingContext.DockerHelper.EstateClient.GetMerchantBalance(token, estateDetails.EstateId, merchantId, CancellationToken.None); + await Retry.For(async () => + { + // Check the merchant balance + MerchantBalanceResponse currentMerchantBalance = + await this.TestingContext.DockerHelper.EstateClient.GetMerchantBalance(token, + estateDetails.EstateId, + merchantId, + CancellationToken.None); + + currentMerchantBalance.AvailableBalance.ShouldBe(previousMerchantBalance.AvailableBalance + makeMerchantDepositRequest.Amount); + }); - currentMerchantBalance.AvailableBalance.ShouldBe(previousMerchantBalance.AvailableBalance + makeMerchantDepositRequest.Amount); } }