From 935365e3410c39bc7ad31ecb8aaccc0ce89ec914 Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Fri, 11 Jul 2025 20:05:13 +0100 Subject: [PATCH] End to End Correlation id --- .../FileProcessor.BusinessLogic.csproj | 14 +++++----- .../FileProcessor.Client.csproj | 4 +-- .../FileProcessor.File.DomainEvents.csproj | 2 +- .../FileProcessor.FileAggregate.csproj | 6 ++--- ...rocessor.FileImportLog.DomainEvents.csproj | 2 +- ...ileProcessor.FileImportLogAggregate.csproj | 4 +-- ...rocessor.IntegrationTesting.Helpers.csproj | 4 +-- .../FileProcessor.IntegrationTests.csproj | 14 +++++----- .../FileProcessor.Tests.csproj | 2 +- FileProcessor/Bootstrapper/ClientRegistry.cs | 24 +++++------------ FileProcessor/FileProcessor.csproj | 7 ++--- FileProcessor/Program.cs | 27 +++++++++++++++---- FileProcessor/Startup.cs | 13 +-------- FileProcessor/nlog.config | 2 +- 14 files changed, 61 insertions(+), 64 deletions(-) diff --git a/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj b/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj index 66debf8..df0fc82 100644 --- a/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj +++ b/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj @@ -6,17 +6,17 @@ - - - - + + + + - + - + - + diff --git a/FileProcessor.Client/FileProcessor.Client.csproj b/FileProcessor.Client/FileProcessor.Client.csproj index bf21bed..6ae8936 100644 --- a/FileProcessor.Client/FileProcessor.Client.csproj +++ b/FileProcessor.Client/FileProcessor.Client.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/FileProcessor.File.DomainEvents/FileProcessor.File.DomainEvents.csproj b/FileProcessor.File.DomainEvents/FileProcessor.File.DomainEvents.csproj index 86baa24..ddf133e 100644 --- a/FileProcessor.File.DomainEvents/FileProcessor.File.DomainEvents.csproj +++ b/FileProcessor.File.DomainEvents/FileProcessor.File.DomainEvents.csproj @@ -6,7 +6,7 @@ - + diff --git a/FileProcessor.FileAggregate/FileProcessor.FileAggregate.csproj b/FileProcessor.FileAggregate/FileProcessor.FileAggregate.csproj index 2b0b332..3e97816 100644 --- a/FileProcessor.FileAggregate/FileProcessor.FileAggregate.csproj +++ b/FileProcessor.FileAggregate/FileProcessor.FileAggregate.csproj @@ -6,9 +6,9 @@ - - - + + + diff --git a/FileProcessor.FileImportLog.DomainEvents/FileProcessor.FileImportLog.DomainEvents.csproj b/FileProcessor.FileImportLog.DomainEvents/FileProcessor.FileImportLog.DomainEvents.csproj index ba8f328..2efc869 100644 --- a/FileProcessor.FileImportLog.DomainEvents/FileProcessor.FileImportLog.DomainEvents.csproj +++ b/FileProcessor.FileImportLog.DomainEvents/FileProcessor.FileImportLog.DomainEvents.csproj @@ -6,7 +6,7 @@ - + diff --git a/FileProcessor.FileImportLogAggregate/FileProcessor.FileImportLogAggregate.csproj b/FileProcessor.FileImportLogAggregate/FileProcessor.FileImportLogAggregate.csproj index c3e0a8c..4351dd8 100644 --- a/FileProcessor.FileImportLogAggregate/FileProcessor.FileImportLogAggregate.csproj +++ b/FileProcessor.FileImportLogAggregate/FileProcessor.FileImportLogAggregate.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/FileProcessor.IntegrationTesting.Helpers/FileProcessor.IntegrationTesting.Helpers.csproj b/FileProcessor.IntegrationTesting.Helpers/FileProcessor.IntegrationTesting.Helpers.csproj index 48c39c1..c83b74b 100644 --- a/FileProcessor.IntegrationTesting.Helpers/FileProcessor.IntegrationTesting.Helpers.csproj +++ b/FileProcessor.IntegrationTesting.Helpers/FileProcessor.IntegrationTesting.Helpers.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/FileProcessor.IntegrationTests/FileProcessor.IntegrationTests.csproj b/FileProcessor.IntegrationTests/FileProcessor.IntegrationTests.csproj index 46577b8..e849a90 100644 --- a/FileProcessor.IntegrationTests/FileProcessor.IntegrationTests.csproj +++ b/FileProcessor.IntegrationTests/FileProcessor.IntegrationTests.csproj @@ -12,7 +12,7 @@ - + @@ -22,13 +22,13 @@ - - - - + + + + - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/FileProcessor.Tests/FileProcessor.Tests.csproj b/FileProcessor.Tests/FileProcessor.Tests.csproj index 2be0c55..84e6e25 100644 --- a/FileProcessor.Tests/FileProcessor.Tests.csproj +++ b/FileProcessor.Tests/FileProcessor.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/FileProcessor/Bootstrapper/ClientRegistry.cs b/FileProcessor/Bootstrapper/ClientRegistry.cs index 1598af6..80467dc 100644 --- a/FileProcessor/Bootstrapper/ClientRegistry.cs +++ b/FileProcessor/Bootstrapper/ClientRegistry.cs @@ -1,4 +1,6 @@ -namespace FileProcessor.Bootstrapper; +using ClientProxyBase; + +namespace FileProcessor.Bootstrapper; using System; using System.Diagnostics.CodeAnalysis; @@ -18,26 +20,14 @@ public class ClientRegistry : ServiceRegistry /// Initializes a new instance of the class. /// public ClientRegistry() { - this.AddSingleton(); - this.AddSingleton(); + this.AddHttpContextAccessor(); + this.RegisterHttpClient(); + this.RegisterHttpClient(); //this.AddSingleton>(container => serviceName => { return ConfigurationReader.GetBaseServerUri(serviceName).OriginalString; }); Func resolver(IServiceProvider container) => serviceName => { return ConfigurationReader.GetBaseServerUri(serviceName).OriginalString; }; - Func resolver1() => serviceName => { return ConfigurationReader.GetBaseServerUri(serviceName).OriginalString; }; - - this.AddSingleton>(resolver); - SocketsHttpHandler httpMessageHandler = new SocketsHttpHandler { - SslOptions = { - RemoteCertificateValidationCallback = (sender, - certificate, - chain, - errors) => true, - } - }; - - HttpClient httpClient = new(httpMessageHandler); - this.AddSingleton(httpClient); + this.AddSingleton>(resolver); } #endregion diff --git a/FileProcessor/FileProcessor.csproj b/FileProcessor/FileProcessor.csproj index 54e6b83..b1d62ae 100644 --- a/FileProcessor/FileProcessor.csproj +++ b/FileProcessor/FileProcessor.csproj @@ -6,10 +6,11 @@ + - + @@ -18,12 +19,12 @@ - + - + diff --git a/FileProcessor/Program.cs b/FileProcessor/Program.cs index e2ebb86..a0ac4eb 100644 --- a/FileProcessor/Program.cs +++ b/FileProcessor/Program.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using Shared.Middleware; using System; using System.Collections.Generic; using System.Linq; @@ -9,10 +10,6 @@ namespace FileProcessor { - using System.Diagnostics.CodeAnalysis; - using System.IO; - using System.IO.Abstractions; - using System.Net.Http; using BusinessLogic.Managers; using EventStore.Client; using File.DomainEvents; @@ -20,8 +17,14 @@ namespace FileProcessor using Lamar.Microsoft.DependencyInjection; using MediatR; using Microsoft.Extensions.DependencyInjection; + using NLog; + using NLog.Extensions.Logging; using Shared.EventStore.EventHandling; using Shared.Logger; + using System.Diagnostics.CodeAnalysis; + using System.IO; + using System.IO.Abstractions; + using System.Net.Http; [ExcludeFromCodeCoverage] public class Program @@ -41,13 +44,27 @@ public static IHostBuilder CreateHostBuilder(string[] args) .AddJsonFile("hosting.development.json", optional: true) .AddEnvironmentVariables().Build(); + String contentRoot = Directory.GetCurrentDirectory(); + String nlogConfigPath = Path.Combine(contentRoot, "nlog.config"); + + LogManager.Setup(b => + { + b.SetupLogFactory(setup => + { + setup.AddCallSiteHiddenAssembly(typeof(NlogLogger).Assembly); + setup.AddCallSiteHiddenAssembly(typeof(Shared.Logger.Logger).Assembly); + setup.AddCallSiteHiddenAssembly(typeof(TenantMiddleware).Assembly); + }); + b.LoadConfigurationFromFile(nlogConfigPath); + }); + IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args); hostBuilder.UseWindowsService(); hostBuilder.UseLamar(); hostBuilder.ConfigureLogging(logging => { logging.AddConsole(); - + logging.AddNLog(); }); hostBuilder.ConfigureWebHostDefaults(webBuilder => { diff --git a/FileProcessor/Startup.cs b/FileProcessor/Startup.cs index c75ecd2..c9c4957 100644 --- a/FileProcessor/Startup.cs +++ b/FileProcessor/Startup.cs @@ -135,22 +135,11 @@ public static void LoadDomainEventsTypeDynamically(List assemblyFilters // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { - String nlogConfigFilename = "nlog.config"; - if (env.IsDevelopment()) { - var developmentNlogConfigFilename = "nlog.development.config"; - if (System.IO.File.Exists(Path.Combine(env.ContentRootPath, developmentNlogConfigFilename))) - { - nlogConfigFilename = developmentNlogConfigFilename; - } - app.UseDeveloperExceptionPage(); } - loggerFactory.ConfigureNLog(Path.Combine(env.ContentRootPath, nlogConfigFilename)); - loggerFactory.AddNLog(); - ILogger logger = loggerFactory.CreateLogger("FileProcessor"); Logger.Initialise(logger); @@ -158,7 +147,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF Startup.Configuration.LogConfiguration(Logger.LogWarning); ConfigurationReader.Initialise(Startup.Configuration); - + app.UseMiddleware(); app.AddRequestLogging(); app.AddResponseLogging(); app.AddExceptionHandler(); diff --git a/FileProcessor/nlog.config b/FileProcessor/nlog.config index a66fa4e..adb458a 100644 --- a/FileProcessor/nlog.config +++ b/FileProcessor/nlog.config @@ -4,7 +4,7 @@