From 712be798b1971d707ffbd1a29437f8732d9805a5 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Mon, 2 Jun 2025 16:29:02 +0100 Subject: [PATCH] Upgrade to .NET 9.0 and update dependencies This commit upgrades the target framework from .NET 8.0 to .NET 9.0 across multiple project files, ensuring compatibility with the latest features. YAML files are updated to install .NET 9.0 during CI/CD processes. Several package references have been updated to their latest versions, enhancing security and functionality. The database connection password in `appsettings.json` has been modified for improved security. Significant code removal in the `TransactionProcessing.SettlementProcessor` project suggests a refactor of the processing logic. Solution files have also been updated to reflect changes in project structure and dependencies. --- .github/workflows/createrelease.yml | 5 + .github/workflows/pullrequest.yml | 5 + .../StreamManagementTool.csproj | 10 +- .../TransactionDataGenerator.csproj | 2 +- .../TransactionDataGenerator.sln | 25 --- .../JobTestDriver/JobTestDriver.csproj | 2 +- ...sing.SchedulerService.DataGenerator.csproj | 10 +- ...ionProcessing.SchedulerService.Jobs.csproj | 10 +- ...nsactionProcessing.SchedulerService.csproj | 14 +- .../appsettings.json | 2 +- ...nsactionProcessing.SettlementProcessor.sln | 25 --- .../Program.cs | 40 ---- .../Properties/launchSettings.json | 8 - .../SettlementProcessor.cs | 183 ------------------ ...ctionProcessing.SettlementProcessor.csproj | 24 --- .../appsettings.json | 9 - ...TransactionProcessor.HealthChecksUI.csproj | 4 +- ...ransactionProcessor.SystemSetupTool.csproj | 10 +- 18 files changed, 42 insertions(+), 346 deletions(-) delete mode 100644 TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.sln delete mode 100644 TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.sln delete mode 100644 TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Program.cs delete mode 100644 TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Properties/launchSettings.json delete mode 100644 TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/SettlementProcessor.cs delete mode 100644 TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.csproj delete mode 100644 TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/appsettings.json diff --git a/.github/workflows/createrelease.yml b/.github/workflows/createrelease.yml index c344c45..5cc7270 100644 --- a/.github/workflows/createrelease.yml +++ b/.github/workflows/createrelease.yml @@ -14,6 +14,11 @@ jobs: steps: - uses: actions/checkout@v1 + + - name: Install NET 9 + uses: actions/setup-dotnet@v4.0.1 + with: + dotnet-version: '9.0.x' - name: Get the version id: get_version diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 242beaa..d18b62f 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -16,6 +16,11 @@ jobs: steps: - uses: actions/checkout@v1 + - name: Install NET 9 + uses: actions/setup-dotnet@v4.0.1 + with: + dotnet-version: '9.0.x' + - name: Restore Nuget Packages run: | dotnet restore TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI.sln --source ${{ secrets.PUBLICFEEDURL }} --source ${{ secrets.PRIVATEFEED_URL }} diff --git a/StreamManagementTool/StreamManagementTool.csproj b/StreamManagementTool/StreamManagementTool.csproj index 55ebdd2..e97cab8 100644 --- a/StreamManagementTool/StreamManagementTool.csproj +++ b/StreamManagementTool/StreamManagementTool.csproj @@ -2,16 +2,16 @@ Exe - net8.0 + net9.0 enable enable - - - - + + + + diff --git a/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.csproj b/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.csproj index a4e9536..736c439 100644 --- a/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.csproj +++ b/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 diff --git a/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.sln b/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.sln deleted file mode 100644 index 53232e7..0000000 --- a/TransactionProcessing.SchedulerService/DataGenerator/TransactionDataGenerator.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30330.147 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransactionDataGenerator", "TransactionDataGenerator.csproj", "{26A8BBD6-1448-4480-9354-AE3660B5FBAA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {26A8BBD6-1448-4480-9354-AE3660B5FBAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {26A8BBD6-1448-4480-9354-AE3660B5FBAA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {26A8BBD6-1448-4480-9354-AE3660B5FBAA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {26A8BBD6-1448-4480-9354-AE3660B5FBAA}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {B5F20CE6-1BA5-463D-9FF3-6A6109DA2CF5} - EndGlobalSection -EndGlobal diff --git a/TransactionProcessing.SchedulerService/JobTestDriver/JobTestDriver.csproj b/TransactionProcessing.SchedulerService/JobTestDriver/JobTestDriver.csproj index cf0245f..e849621 100644 --- a/TransactionProcessing.SchedulerService/JobTestDriver/JobTestDriver.csproj +++ b/TransactionProcessing.SchedulerService/JobTestDriver/JobTestDriver.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 enable enable diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.DataGenerator/TransactionProcessing.SchedulerService.DataGenerator.csproj b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.DataGenerator/TransactionProcessing.SchedulerService.DataGenerator.csproj index e65dd31..3379765 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.DataGenerator/TransactionProcessing.SchedulerService.DataGenerator.csproj +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.DataGenerator/TransactionProcessing.SchedulerService.DataGenerator.csproj @@ -1,16 +1,16 @@  - net8.0 + net9.0 enable enable - - - - + + + + diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj index 79995b4..ebb7cd0 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.Jobs/TransactionProcessing.SchedulerService.Jobs.csproj @@ -1,18 +1,18 @@  - net8.0 + net9.0 - + - - - + + + diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj index fb7bed9..34cdb13 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService.csproj @@ -1,20 +1,20 @@  - net8.0 + net9.0 - + - - - - - + + + + + diff --git a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json index fa94969..c81bdbf 100644 --- a/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json +++ b/TransactionProcessing.SchedulerService/TransactionProcessing.SchedulerService/appsettings.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "Quartz": "server=127.0.0.1;user id=sa;password=Sc0tland;database=Scheduler;Encrypt=True;TrustServerCertificate=True" + "Quartz": "server=127.0.0.1;user id=sa;password=sp1ttal;database=Scheduler;Encrypt=True;TrustServerCertificate=True" }, //"Quartz": { // "quartz.scheduler.instanceName": "Txn Processing Scheduler", diff --git a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.sln b/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.sln deleted file mode 100644 index 2f71a89..0000000 --- a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31815.197 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TransactionProcessing.SettlementProcessor", "TransactionProcessing.SettlementProcessor\TransactionProcessing.SettlementProcessor.csproj", "{CDE997F7-750D-4BEA-9900-BA67AA5C8536}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CDE997F7-750D-4BEA-9900-BA67AA5C8536}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CDE997F7-750D-4BEA-9900-BA67AA5C8536}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CDE997F7-750D-4BEA-9900-BA67AA5C8536}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CDE997F7-750D-4BEA-9900-BA67AA5C8536}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {616BE73D-C421-490F-8F1D-94858489D032} - EndGlobalSection -EndGlobal diff --git a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Program.cs b/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Program.cs deleted file mode 100644 index 41f8da2..0000000 --- a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Program.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; - -namespace TransactionProcessing.SettlementProcessor -{ - using EstateManagement.Client; - using SecurityService.Client; - using System.Threading.Tasks; - using TransactionProcessing.DataGeneration; - using TransactionProcessor.Client; - - internal class Program - { - static async Task Main(string[] args) - { - // Set an estate - Guid estateId = Guid.Parse(args[0]); - DateTime? startDate = null; - DateTime? endDate = null; - if (args.Length == 3) - { - // We have been provided a date range - startDate = DateTime.ParseExact(args[1], "yyyy-MM-dd", null); - endDate = DateTime.ParseExact(args[2], "yyyy-MM-dd", null); - } - - startDate = new DateTime(2023,10,10); - endDate = new DateTime(2023,10,10); - - String clientId = ""; - String clientSecret = ""; - - - SettlementProcessor processor = new SettlementProcessor(); - processor.LoadConfiguration(); - await processor.ProcessSettlement(estateId, startDate, endDate); - } - - - } -} diff --git a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Properties/launchSettings.json b/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Properties/launchSettings.json deleted file mode 100644 index 6d2ce60..0000000 --- a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/Properties/launchSettings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "profiles": { - "TransactionProcessing.SettlementProcessor": { - "commandName": "Project", - "commandLineArgs": "435613ac-a468-47a3-ac4f-649d89764c22" - } - } -} \ No newline at end of file diff --git a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/SettlementProcessor.cs b/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/SettlementProcessor.cs deleted file mode 100644 index 565a5d2..0000000 --- a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/SettlementProcessor.cs +++ /dev/null @@ -1,183 +0,0 @@ -namespace TransactionProcessing.SettlementProcessor -{ - using System; - using System.Collections.Generic; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - using EstateManagement.Client; - using Microsoft.Extensions.Configuration; - using SecurityService.Client; - using SecurityService.DataTransferObjects.Responses; - using Shared.General; - using TransactionProcessing.DataGeneration; - using TransactionProcessor.Client; - - public class SettlementProcessor - { - #region Fields - - private SecurityServiceClient SecurityServiceClient; - - private TokenResponse TokenResponse; - - private TransactionProcessorClient TransactionProcessorClient; - - private EstateClient EstateClient; - - private ITransactionDataGenerator TransactionDataGenerator; - #endregion - - #region Properties - - public IConfigurationRoot Configuration { get; set; } - - #endregion - - #region Methods - - public void LoadConfiguration() - { - IConfigurationBuilder builder = new ConfigurationBuilder().AddJsonFile("/home/txnproc/config/appsettings.json", true, true) - .AddJsonFile("appsettings.json", optional:true, reloadOnChange:true) - .AddJsonFile("appsettings.development.json", optional:true, reloadOnChange:true); - - this.Configuration = builder.Build(); - - ConfigurationReader.Initialise(this.Configuration); - - HttpClientHandler handler = new HttpClientHandler - { - ServerCertificateCustomValidationCallback = (message, - cert, - chain, - errors) => - { - return true; - } - }; - HttpClient httpClient = new HttpClient(handler); - - Func baseAddressFunc = apiName => - { - String url = ConfigurationReader.GetBaseServerUri(apiName).AbsoluteUri; - url = url.Remove(url.Length - 1); - return url; - }; - - this.SecurityServiceClient = new SecurityServiceClient(baseAddressFunc, httpClient); - this.TransactionProcessorClient = new TransactionProcessorClient(baseAddressFunc, httpClient); - this.EstateClient = new EstateClient(baseAddressFunc, httpClient); - - this.TransactionDataGenerator = new TransactionDataGenerator(this.SecurityServiceClient, - this.EstateClient, - this.TransactionProcessorClient, - baseAddressFunc("EstateManagementApi"), - baseAddressFunc("FileProcessorApi"), - baseAddressFunc("TestHostApi"), - "serviceClient", - "d192cbc46d834d0da90e8a9d50ded543", - RunningMode.Live); - - } - - public async Task ProcessSettlement(Guid estateId, - DateTime? startDate, - DateTime? endDate) - { - - - // Get a token - //await this.GetToken(CancellationToken.None); - List dates = new List(); - if (startDate.HasValue && endDate.HasValue) - { - dates = this.GenerateDateRange(startDate.Value, endDate.Value); - } - else - { - dates.Add(DateTime.Now.Date); - } - - //var merchantList = await this.EstateClient.GetMerchants(this.TokenResponse.AccessToken, estateId, CancellationToken.None); - - //foreach (var merchant in merchantList){ - - foreach (DateTime settlementDate in dates){ - // await this.TransactionProcessorClient.ProcessSettlement(this.TokenResponse.AccessToken, settlementDate, estateId, merchant.MerchantId, CancellationToken.None); - await this.TransactionDataGenerator.PerformSettlement(settlementDate, estateId, CancellationToken.None); - } - //} - - - } - - /// - /// Generates the date range. - /// - /// The start date. - /// The end date. - /// - private List GenerateDateRange(DateTime startDate, - DateTime endDate) - { - List dateRange = new List(); - - if (endDate.Subtract(startDate).Days == 0) - { - dateRange.Add(startDate); - } - else - { - while (endDate.Subtract(startDate).Days >= 0) - { - dateRange.Add(startDate); - startDate = startDate.AddDays(1); - } - } - - return dateRange; - } - - private async Task GetToken(CancellationToken cancellationToken) - { - // Get a token to talk to the estate service - String clientId = "serviceClient"; - String clientSecret = "d192cbc46d834d0da90e8a9d50ded543"; - - if (this.TokenResponse == null) - { - TokenResponse token = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken); - this.TokenResponse = token; - } - - if (this.TokenResponse.Expires.UtcDateTime.Subtract(DateTime.UtcNow) < TimeSpan.FromMinutes(2)) - { - TokenResponse token = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken); - this.TokenResponse = token; - } - } - - - //protected static ITransactionDataGenerator CreateTransactionDataGenerator(String clientId, String clientSecret, RunningMode runningMode) - //{ - // ISecurityServiceClient securityServiceClient = Bootstrapper.GetService(); - // IEstateClient estateClient = Bootstrapper.GetService(); - // ITransactionProcessorClient transactionProcessorClient = Bootstrapper.GetService(); - // Func baseAddressFunc = Bootstrapper.GetService>(); - - // ITransactionDataGenerator g = new TransactionDataGenerator(securityServiceClient, - // estateClient, - // transactionProcessorClient, - // baseAddressFunc("EstateManagementApi"), - // baseAddressFunc("FileProcessorApi"), - // baseAddressFunc("TestHostApi"), - // clientId, - // clientSecret, - // runningMode); - // return g; - //} - - #endregion - } -} \ No newline at end of file diff --git a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.csproj b/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.csproj deleted file mode 100644 index 16592c5..0000000 --- a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - Exe - net8.0 - - - - - - - - - - - - - - - Always - - - - diff --git a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/appsettings.json b/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/appsettings.json deleted file mode 100644 index 86b4c63..0000000 --- a/TransactionProcessing.SettlementProcessor/TransactionProcessing.SettlementProcessor/appsettings.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "AppSettings": { - "SecurityService": "https://192.168.1.167:5001", - "TransactionProcessorApi": "http://192.168.1.167:5002", - "TestHostApi": "https://192.168.1.167:9000", - "FileProcessorApi": "https://192.168.1.167:5009" - - } -} diff --git a/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI.csproj b/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI.csproj index 37e10af..2939379 100644 --- a/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI.csproj +++ b/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI/TransactionProcessor.HealthChecksUI.csproj @@ -1,13 +1,13 @@ - net8.0 + net9.0 - + diff --git a/TransactionProcessor.SystemSetupTool/TransactionProcessor.SystemSetupTool.csproj b/TransactionProcessor.SystemSetupTool/TransactionProcessor.SystemSetupTool.csproj index 3c59fe1..bd2dd3e 100644 --- a/TransactionProcessor.SystemSetupTool/TransactionProcessor.SystemSetupTool.csproj +++ b/TransactionProcessor.SystemSetupTool/TransactionProcessor.SystemSetupTool.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net9.0 @@ -20,11 +20,11 @@ - - + + - - + +