From 53f9b04097bd30c343b97ecb8f09b750f20af6b5 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Tue, 20 Sep 2022 20:32:33 +0100 Subject: [PATCH 1/2] Support skipping contracts and some other tweaks --- .../GenerateTransactionsJob.cs | 10 ++++- .../Program.cs | 2 +- .../appsettings.json | 12 +++--- .../setupconfig.json | 39 ++++++++++++++++--- 4 files changed, 50 insertions(+), 13 deletions(-) diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs index 4289228..6eee77c 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs @@ -87,12 +87,13 @@ public async Task Execute(IJobExecutionContext context) Guid estateId = context.MergedJobDataMap.GetGuidValueFromString("EstateId"); Guid merchantId = context.MergedJobDataMap.GetGuidValueFromString("MerchantId"); Boolean requireLogon = context.MergedJobDataMap.GetBooleanValueFromString("requireLogon"); + String contractsToSkip = context.MergedJobDataMap.GetString("contractsToSkip"); this.SecurityServiceClient = this.Bootstrapper.GetService(); this.TransactionProcessorClient = this.Bootstrapper.GetService(); this.EstateClient = this.Bootstrapper.GetService(); - await this.GenerateTransactions(estateId, merchantId, requireLogon, context.CancellationToken); + await this.GenerateTransactions(estateId, merchantId, requireLogon, contractsToSkip, context.CancellationToken); } catch(Exception e) { @@ -111,10 +112,16 @@ public async Task Execute(IJobExecutionContext context) private async Task> CreateSaleRequests(String accessToken, MerchantResponse merchant, DateTime dateTime, + String contractsToSkip, CancellationToken cancellationToken) { List contracts = await this.EstateClient.GetMerchantContracts(accessToken, merchant.EstateId, merchant.MerchantId, cancellationToken); + if (String.IsNullOrEmpty(contractsToSkip) == false) { + String[] skipContracts = contractsToSkip.Split('|'); + contracts = contracts.Where(c => skipContracts.Contains(c.Description) == false).ToList(); + } + List saleRequests = new List(); Random r = new Random(); @@ -264,6 +271,7 @@ private async Task DoSaleTransaction(String accessToken, private async Task GenerateTransactions(Guid estateId, Guid merchantId, Boolean requiresLogon, + String contractsToSkip, CancellationToken cancellationToken) { DateTime transactionDate = DateTime.Now; diff --git a/TransactionProcessor.SystemSetupTool/Program.cs b/TransactionProcessor.SystemSetupTool/Program.cs index 78db8e0..bb4d1e2 100644 --- a/TransactionProcessor.SystemSetupTool/Program.cs +++ b/TransactionProcessor.SystemSetupTool/Program.cs @@ -62,7 +62,7 @@ static async Task Main(string[] args) Program.ProjectionClient = new EventStoreProjectionManagementClient(settings); Program.PersistentSubscriptionsClient = new EventStorePersistentSubscriptionsClient(settings); - //await Program.SetupIdentityServerFromConfig(); + await Program.SetupIdentityServerFromConfig(); // Setup latest projections await DeployProjections(); diff --git a/TransactionProcessor.SystemSetupTool/appsettings.json b/TransactionProcessor.SystemSetupTool/appsettings.json index 3920db5..e528098 100644 --- a/TransactionProcessor.SystemSetupTool/appsettings.json +++ b/TransactionProcessor.SystemSetupTool/appsettings.json @@ -1,13 +1,13 @@ { "AppSettings": { // Local (Docker) - //"EstateManagementUri": "http://127.0.0.1:5000", - //"SecurityServiceUri": "https://127.0.0.1:5001", - //"EventStoreAddress": "esdb://admin:changeit@127.0.0.1:4113?tls=false&tlsVerifyCert=false" + "EstateManagementUri": "http://127.0.0.1:5000", + "SecurityServiceUri": "https://127.0.0.1:5001", + "EventStoreAddress": "esdb://admin:changeit@127.0.0.1:4113?tls=false&tlsVerifyCert=false" // Staging - "EstateManagementUri": "http://192.168.0.133:5000", - "SecurityServiceUri": "https://192.168.0.133:5001", - "EventStoreAddress": "esdb://admin:changeit@192.168.0.133:2113?tls=false&tlsVerifyCert=false" + //"EstateManagementUri": "http://192.168.0.133:5000", + //"SecurityServiceUri": "https://192.168.0.133:5001", + //"EventStoreAddress": "esdb://admin:changeit@192.168.0.133:2113?tls=false&tlsVerifyCert=false" } } diff --git a/TransactionProcessor.SystemSetupTool/setupconfig.json b/TransactionProcessor.SystemSetupTool/setupconfig.json index 234f2be..9e92eb7 100644 --- a/TransactionProcessor.SystemSetupTool/setupconfig.json +++ b/TransactionProcessor.SystemSetupTool/setupconfig.json @@ -51,7 +51,8 @@ }, "operators": [ "Safaricom", - "Voucher" + "Voucher", + "PataPawa PostPay" ], "user": { "email_address": "merchantuser@testmerchant2.co.uk", @@ -79,7 +80,8 @@ }, "operators": [ "Safaricom", - "Voucher" + "Voucher", + "PataPawa PostPay" ], "user": { "email_address": "merchantuser@testmerchant3.co.uk", @@ -107,7 +109,8 @@ }, "operators": [ "Safaricom", - "Voucher" + "Voucher", + "PataPawa PostPay" ], "user": { "email_address": "merchantuser@v28emulatormerchant.co.uk", @@ -135,7 +138,8 @@ }, "operators": [ "Safaricom", - "Voucher" + "Voucher", + "PataPawa PostPay" ], "user": { "email_address": "merchantuser@s7merchant.co.uk", @@ -163,7 +167,8 @@ }, "operators": [ "Safaricom", - "Voucher" + "Voucher", + "PataPawa PostPay" ], "user": { "email_address": "merchantuser@xperiamerchant.co.uk", @@ -187,6 +192,11 @@ "name": "Voucher", "require_custom_merchant_number": false, "require_custom_terminal_number": false + }, + { + "name": "PataPawa PostPay", + "require_custom_merchant_number": false, + "require_custom_terminal_number": false } ], "contracts": [ @@ -266,6 +276,25 @@ ] } ] + }, + { + "operator_name": "PataPawa PostPay", + "description": "PataPawa PostPay Contract", + "products": [ + { + "display_text": "Bill Pay (Post)", + "product_name": "Post Pay Bill Pay", + "value": null, + "transaction_fees": [ + { + "calculation_type": 0, + "description": "Merchant Commission", + "value": 0.95, + "fee_type": 0 + } + ] + } + ] } ] }, From 872b3372af0da1509f90a6ae1670a8ee0f7e820a Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Tue, 20 Sep 2022 20:47:21 +0100 Subject: [PATCH 2/2] upgrade to net 6 --- .../GenerateTransactions/GenerateTransactionsJob.cs | 2 +- .../TransactionProcessing.SchedulerService.Jobs.csproj | 8 ++++---- .../TransactionProcessing.SchedulerService/Startup.cs | 1 + .../TransactionProcessing.SchedulerService.csproj | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs index 6eee77c..0580495 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/GenerateTransactions/GenerateTransactionsJob.cs @@ -293,7 +293,7 @@ private async Task GenerateTransactions(Guid estateId, } // Now generate some sales - List saleRequests = await this.CreateSaleRequests(accessToken, merchant, transactionDate, cancellationToken); + List saleRequests = await this.CreateSaleRequests(accessToken, merchant, transactionDate, contractsToSkip, cancellationToken); // Work out how much of a deposit the merchant needs (minus 1 sale) IEnumerable> metadata = saleRequests.Select(s => s.AdditionalTransactionMetadata); diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj index 2f6d196..0fc6153 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj @@ -1,15 +1,15 @@  - net5.0 + net6.0 - + - - + + diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs index 917707f..6954644 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/Startup.cs @@ -16,6 +16,7 @@ namespace TransactionProcessing.SchedulerService using Quartz; using Quartz.Impl; using SilkierQuartz; + using ConfigurationManager = System.Configuration.ConfigurationManager; /// /// diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj index 6e7afa1..07574b8 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj @@ -1,7 +1,7 @@  - net5.0 + net6.0 @@ -10,7 +10,7 @@ - +