From ad9823f98cb15d3d2293e2e5baa5baf9dd86d23a Mon Sep 17 00:00:00 2001 From: Stuart Ferguson Date: Tue, 2 Jul 2024 12:59:01 +0100 Subject: [PATCH] trace improvements --- .../FileProcessingManagerTests.cs | 6 +-- .../ModelFactoryTests.cs | 2 +- .../Common/ModelFactory.cs | 4 +- .../FileProcessor.BusinessLogic.csproj | 14 +++---- .../Managers/FileProcessorManager.cs | 24 +++++------ .../Services/FileProcessorDomainService.cs | 17 ++++---- .../FileProcessor.Client.csproj | 2 +- .../FileProcessor.File.DomainEvents.csproj | 2 +- .../FileProcessor.FileAggregate.csproj | 4 +- ...rocessor.FileImportLog.DomainEvents.csproj | 2 +- ...ileProcessor.FileImportLogAggregate.csproj | 2 +- ...rocessor.IntegrationTesting.Helpers.csproj | 4 +- .../FileProcessor.IntegrationTests.csproj | 16 ++++---- FileProcessor.Testing/TestData.cs | 40 ++++++++++--------- .../DomainEventHandlerRegistry.cs | 3 ++ FileProcessor/Bootstrapper/MiscRegistry.cs | 39 +++++++++++++++++- FileProcessor/Common/Extensions.cs | 4 +- .../Controllers/DomainEventController.cs | 6 +-- FileProcessor/FileProcessor.csproj | 2 +- FileProcessor/Startup.cs | 12 +++--- FileProcessor/nlog.config | 15 +++++-- 21 files changed, 134 insertions(+), 86 deletions(-) diff --git a/FileProcessor.BusinessLogic.Tests/FileProcessingManagerTests.cs b/FileProcessor.BusinessLogic.Tests/FileProcessingManagerTests.cs index 3b788aa..c7c9af8 100644 --- a/FileProcessor.BusinessLogic.Tests/FileProcessingManagerTests.cs +++ b/FileProcessor.BusinessLogic.Tests/FileProcessingManagerTests.cs @@ -179,7 +179,7 @@ public async Task FileProcessingManager_GetFile_FileReturnedWithMerchantName() var context = await this.GetContext(Guid.NewGuid().ToString("N")); context.Merchants.Add(new Merchant { - EstateReportingId = TestData.EstateReportingId, + EstateId = TestData.EstateId, MerchantReportingId = TestData.MerchantReportingId, MerchantId = TestData.MerchantId, Name = TestData.MerchantName @@ -207,7 +207,7 @@ public async Task FileProcessingManager_GetFile_FileReturnedWithUserEmailAddress var context = await this.GetContext(Guid.NewGuid().ToString("N")); context.EstateSecurityUsers.Add(new EstateSecurityUser() { - EstateReportingId = TestData.EstateReportingId, + EstateId = TestData.EstateId, SecurityUserId = TestData.UserId, EmailAddress = TestData.UserEmailAddress }); @@ -243,7 +243,7 @@ public async Task FileProcessingManager_GetFile_FileReturnedWithFileProfileName( var context = await this.GetContext(Guid.NewGuid().ToString("N")); context.EstateSecurityUsers.Add(new EstateSecurityUser() { - EstateReportingId = TestData.EstateReportingId, + EstateId = TestData.EstateId, SecurityUserId = TestData.UserId, EmailAddress = TestData.UserEmailAddress }); diff --git a/FileProcessor.BusinessLogic.Tests/ModelFactoryTests.cs b/FileProcessor.BusinessLogic.Tests/ModelFactoryTests.cs index 1bab10c..ac0fffb 100644 --- a/FileProcessor.BusinessLogic.Tests/ModelFactoryTests.cs +++ b/FileProcessor.BusinessLogic.Tests/ModelFactoryTests.cs @@ -84,7 +84,7 @@ private void VerifyImportLogs(List sourceImportLogs, List<(FileIm importLogs.Count.ShouldBe(TestData.FileImportLogs.Count); foreach (FileImportLog fileImportLog in sourceImportLogs){ FIleProcessor.Models.FileImportLog importLog = importLogs.SingleOrDefault(i => i.FileImportLogId == fileImportLog.FileImportLogId); - List<(FileImportLogFile, File, Merchant)> sourceFiles = sourceImportLogFiles.Where(s => s.Item1.FileImportLogReportingId == fileImportLog.FileImportLogReportingId).ToList(); + List<(FileImportLogFile, File, Merchant)> sourceFiles = sourceImportLogFiles.Where(s => s.Item1.FileImportLogId == fileImportLog.FileImportLogId).ToList(); this.VerifyImportLog(fileImportLog, sourceFiles, importLog); } } diff --git a/FileProcessor.BusinessLogic/Common/ModelFactory.cs b/FileProcessor.BusinessLogic/Common/ModelFactory.cs index aaf8b28..615a287 100644 --- a/FileProcessor.BusinessLogic/Common/ModelFactory.cs +++ b/FileProcessor.BusinessLogic/Common/ModelFactory.cs @@ -36,7 +36,7 @@ public List ConvertFrom(Guid estateId, model.EstateId = estateId; model.Files = new List(); - IEnumerable<(FileImportLogFile, File,Merchant)> currentImportLogFiles = importLogFilesList.Where(fi => fi.Item1.FileImportLogReportingId == fileImportLog.FileImportLogReportingId); + IEnumerable<(FileImportLogFile, File,Merchant)> currentImportLogFiles = importLogFilesList.Where(fi => fi.Item1.FileImportLogId == fileImportLog.FileImportLogId); foreach ((FileImportLogFile, File, Merchant) importLogFile in currentImportLogFiles) { @@ -75,7 +75,7 @@ public FileImportLog ConvertFrom(Guid estateId, model.EstateId = estateId; model.Files = new List(); - IEnumerable<(FileImportLogFile, File,Merchant)> currentImportLogFiles = importLogFilesList.Where(fi => fi.Item1.FileImportLogReportingId == importLog.FileImportLogReportingId); + IEnumerable<(FileImportLogFile, File,Merchant)> currentImportLogFiles = importLogFilesList.Where(fi => fi.Item1.FileImportLogId == importLog.FileImportLogId); foreach ((FileImportLogFile, File,Merchant) importLogFile in currentImportLogFiles) { diff --git a/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj b/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj index 5a9796f..d462764 100644 --- a/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj +++ b/FileProcessor.BusinessLogic/FileProcessor.BusinessLogic.csproj @@ -5,16 +5,16 @@ - + - - - - + + + + - + - + diff --git a/FileProcessor.BusinessLogic/Managers/FileProcessorManager.cs b/FileProcessor.BusinessLogic/Managers/FileProcessorManager.cs index 8df125a..aab9030 100644 --- a/FileProcessor.BusinessLogic/Managers/FileProcessorManager.cs +++ b/FileProcessor.BusinessLogic/Managers/FileProcessorManager.cs @@ -107,26 +107,26 @@ public async Task> GetFileImportLogs(Guid estateId, var importLogFileQuery = await context.FileImportLogFiles .Join(context.Files, - fileImportLogFile => fileImportLogFile.FileReportingId, - file => file.FileReportingId, + fileImportLogFile => fileImportLogFile.FileId, + file => file.FileId, (fileImportLogFile, file) => new { fileImportLogFile, file }) .Join(context.Merchants, - file => file.file.MerchantReportingId, - merchant => merchant.MerchantReportingId, + file => file.file.MerchantId, + merchant => merchant.MerchantId, (file, merchant) => new { file, merchant }) .AsAsyncEnumerable() - .Where(fi => importLogQuery.Select(f => f.FileImportLogReportingId).Contains(fi.file.fileImportLogFile.FileImportLogReportingId)) + .Where(fi => importLogQuery.Select(f => f.FileImportLogId).Contains(fi.file.fileImportLogFile.FileImportLogId)) .ToListAsync(cancellationToken); if (merchantId.HasValue){ Merchant merchant = await context.Merchants.SingleOrDefaultAsync(m => m.MerchantId == merchantId.Value, cancellationToken:cancellationToken); - importLogFileQuery = importLogFileQuery.Where(i => i.file.fileImportLogFile.MerchantReportingId == merchant.MerchantReportingId).ToList(); + importLogFileQuery = importLogFileQuery.Where(i => i.file.fileImportLogFile.MerchantId == merchant.MerchantId).ToList(); } List<(FileImportLogFile, File,Merchant)> entityData = new List<(FileImportLogFile, File, Merchant)>(); @@ -157,27 +157,27 @@ public async Task GetFileImportLog(Guid fileImportLogId, var importLogFileQuery = await context.FileImportLogFiles .Join(context.Files, - fileImportLogFile => fileImportLogFile.FileReportingId, - file => file.FileReportingId, + fileImportLogFile => fileImportLogFile.FileId, + file => file.FileId, (fileImportLogFile, file) => new{ fileImportLogFile, file }) .Join(context.Merchants, - file => file.file.MerchantReportingId, - merchant => merchant.MerchantReportingId, + file => file.file.MerchantId, + merchant => merchant.MerchantId, (file, merchant) => new{ file, merchant }) .AsAsyncEnumerable() - .Where(fi => fi.file.fileImportLogFile.FileImportLogReportingId == importLogQuery.FileImportLogReportingId) + .Where(fi => fi.file.fileImportLogFile.FileImportLogId == importLogQuery.FileImportLogId) .ToListAsync(cancellationToken); if (merchantId.HasValue) { Merchant merchant = await context.Merchants.SingleOrDefaultAsync(m => m.MerchantId == merchantId.Value, cancellationToken: cancellationToken); - importLogFileQuery = importLogFileQuery.Where(i => i.file.fileImportLogFile.MerchantReportingId == merchant.MerchantReportingId).ToList(); + importLogFileQuery = importLogFileQuery.Where(i => i.file.fileImportLogFile.MerchantId == merchant.MerchantId).ToList(); } List<(FileImportLogFile, File,Merchant)> entityData = new List<(FileImportLogFile, File, Merchant)>(); diff --git a/FileProcessor.BusinessLogic/Services/FileProcessorDomainService.cs b/FileProcessor.BusinessLogic/Services/FileProcessorDomainService.cs index e5fe516..309e34c 100644 --- a/FileProcessor.BusinessLogic/Services/FileProcessorDomainService.cs +++ b/FileProcessor.BusinessLogic/Services/FileProcessorDomainService.cs @@ -323,7 +323,7 @@ public async Task ProcessTransactionForFileLine(ProcessTransactionForFileLineReq }) }; - Logger.LogInformation(serialisedRequestMessage.SerialisedData); + Logger.LogDebug(serialisedRequestMessage.SerialisedData); // Send request to transaction processor SerialisedMessage serialisedResponseMessage = await this.TransactionProcessorClient.PerformTransaction(this.TokenResponse.AccessToken, serialisedRequestMessage, cancellationToken); @@ -365,13 +365,13 @@ private async Task ProcessFile(Guid fileId, // Check the processed/failed directories exist if (this.FileSystem.Directory.Exists(fileProfile.ProcessedDirectory) == false) { - Logger.LogWarning($"Creating Directory {fileProfile.ProcessedDirectory} as not found"); + Logger.LogInformation($"Creating Directory {fileProfile.ProcessedDirectory} as not found"); this.FileSystem.Directory.CreateDirectory(fileProfile.ProcessedDirectory); } if (this.FileSystem.Directory.Exists(fileProfile.FailedDirectory) == false) { - Logger.LogWarning($"Creating Directory {fileProfile.FailedDirectory} as not found"); + Logger.LogInformation($"Creating Directory {fileProfile.FailedDirectory} as not found"); this.FileSystem.Directory.CreateDirectory(fileProfile.FailedDirectory); } @@ -416,8 +416,7 @@ private async Task ProcessFile(Guid fileId, await this.FileAggregateRepository.SaveChanges(fileAggregate, cancellationToken); } - Logger.LogInformation( - $"About to move file {inProgressFile.Name} to [{fileProfile.ProcessedDirectory}]"); + Logger.LogInformation($"About to move file {inProgressFile.Name} to [{fileProfile.ProcessedDirectory}]"); // TODO: Move file now inProgressFile.MoveTo($"{fileProfile.ProcessedDirectory}/{inProgressFile.Name}"); @@ -483,21 +482,19 @@ private async Task GetToken(CancellationToken cancellationToken) // Get a token to talk to the estate service String clientId = ConfigurationReader.GetValue("AppSettings", "ClientId"); String clientSecret = ConfigurationReader.GetValue("AppSettings", "ClientSecret"); - Logger.LogInformation($"Client Id is {clientId}"); - Logger.LogInformation($"Client Secret is {clientSecret}"); if (this.TokenResponse == null) { TokenResponse token = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken); - Logger.LogInformation($"Token is {token.AccessToken}"); + Logger.LogDebug($"Token is {token.AccessToken}"); return token; } if (this.TokenResponse.Expires.UtcDateTime.Subtract(DateTime.UtcNow) < TimeSpan.FromMinutes(2)) { - Logger.LogInformation($"Token is about to expire at {this.TokenResponse.Expires.DateTime:O}"); + Logger.LogDebug($"Token is about to expire at {this.TokenResponse.Expires.DateTime:O}"); TokenResponse token = await this.SecurityServiceClient.GetToken(clientId, clientSecret, cancellationToken); - Logger.LogInformation($"Token is {token.AccessToken}"); + Logger.LogDebug($"Token is {token.AccessToken}"); return token; } diff --git a/FileProcessor.Client/FileProcessor.Client.csproj b/FileProcessor.Client/FileProcessor.Client.csproj index c3100c8..95bc0ae 100644 --- a/FileProcessor.Client/FileProcessor.Client.csproj +++ b/FileProcessor.Client/FileProcessor.Client.csproj @@ -6,7 +6,7 @@ - + diff --git a/FileProcessor.File.DomainEvents/FileProcessor.File.DomainEvents.csproj b/FileProcessor.File.DomainEvents/FileProcessor.File.DomainEvents.csproj index 8ded1e9..596c44f 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 86c01ea..3fd6a64 100644 --- a/FileProcessor.FileAggregate/FileProcessor.FileAggregate.csproj +++ b/FileProcessor.FileAggregate/FileProcessor.FileAggregate.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/FileProcessor.FileImportLog.DomainEvents/FileProcessor.FileImportLog.DomainEvents.csproj b/FileProcessor.FileImportLog.DomainEvents/FileProcessor.FileImportLog.DomainEvents.csproj index ab0a1f3..c021906 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 a78ba93..5e034cc 100644 --- a/FileProcessor.FileImportLogAggregate/FileProcessor.FileImportLogAggregate.csproj +++ b/FileProcessor.FileImportLogAggregate/FileProcessor.FileImportLogAggregate.csproj @@ -6,7 +6,7 @@ - + diff --git a/FileProcessor.IntegrationTesting.Helpers/FileProcessor.IntegrationTesting.Helpers.csproj b/FileProcessor.IntegrationTesting.Helpers/FileProcessor.IntegrationTesting.Helpers.csproj index 7c80069..4a0dfcd 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 bf3f870..6d261e8 100644 --- a/FileProcessor.IntegrationTests/FileProcessor.IntegrationTests.csproj +++ b/FileProcessor.IntegrationTests/FileProcessor.IntegrationTests.csproj @@ -11,12 +11,12 @@ - + - + @@ -24,13 +24,13 @@ - - - - + + + + - - + + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/FileProcessor.Testing/TestData.cs b/FileProcessor.Testing/TestData.cs index 455e9cf..d52be70 100644 --- a/FileProcessor.Testing/TestData.cs +++ b/FileProcessor.Testing/TestData.cs @@ -30,6 +30,8 @@ public class TestData public static Guid FileId = Guid.Parse("5F7F45D6-0604-46C7-AA88-EAA885A6B208"); public static Guid FileId1 = Guid.Parse("5F7F45D6-0604-46C7-AA88-EAA885A6B208"); public static Guid FileId2 = Guid.Parse("4363C3C2-E5AC-4942-8A6A-5989C71B6B18"); + public static Guid FileId3 = Guid.Parse("FD42D36A-F065-4A18-9394-35D3E2C1EEE2"); + public static Guid FileId4 = Guid.Parse("7E86F6AB-8D95-42E1-A0A8-12AAEE896DE0"); public static Guid UserId = Guid.Parse("BE52C5AC-72E5-4976-BAA0-98699E36C1EB"); @@ -103,7 +105,7 @@ public static String GetVoucherDetailLine(String voucherOperatorIdentifier, Stri public static FileProfile FileProfileNull => null; public static Merchant Merchant => new Merchant{ - EstateReportingId = TestData.EstateReportingId, + EstateId = TestData.EstateId, MerchantId = TestData.MerchantId, MerchantReportingId = TestData.MerchantReportingId, Name = TestData.MerchantName, @@ -762,7 +764,7 @@ public static List GetMerchantContractsResponseNoNullValueProd { FileImportLogId = TestData.FileImportLogId1, ImportLogDateTime = TestData.ImportLogStartDate, - EstateReportingId = TestData.EstateReportingId, + EstateId = TestData.EstateId, FileImportLogReportingId = TestData.FileImportLogReportingId1 }; @@ -770,9 +772,9 @@ public static List GetMerchantContractsResponseNoNullValueProd { new FileImportLogFile { - FileImportLogReportingId = TestData.FileImportLogReportingId1, - FileReportingId = TestData.FileReportingId1, - MerchantReportingId = TestData.MerchantReportingId, + FileImportLogId = TestData.FileImportLogId1, + FileId = TestData.FileId1, + MerchantId = TestData.MerchantId, FilePath = "/home/txnproc/file1.csv", FileProfileId = TestData.FileProfileId, OriginalFileName = "Testfile1.csv", @@ -781,9 +783,9 @@ public static List GetMerchantContractsResponseNoNullValueProd }, new FileImportLogFile { - FileImportLogReportingId = TestData.FileImportLogReportingId1, - FileReportingId = TestData.FileReportingId2, - MerchantReportingId = TestData.MerchantReportingId, + FileImportLogId = TestData.FileImportLogId1, + FileId = TestData.FileId2, + MerchantId = TestData.MerchantId, FilePath = "/home/txnproc/file2.csv", FileProfileId = TestData.FileProfileId, OriginalFileName = "Testfile2.csv", @@ -796,17 +798,17 @@ public static List GetMerchantContractsResponseNoNullValueProd public static List Files1 => new List{ new File(){ - FileImportLogReportingId = TestData.FileImportLogReportingId1, + FileImportLogId = TestData.FileImportLogId1, FileReportingId = TestData.FileReportingId1, - MerchantReportingId = TestData.MerchantReportingId, + MerchantId = TestData.MerchantId, FileProfileId = TestData.FileProfileId, UserId = TestData.UserId, FileId = TestData.FileId1 }, new File{ - FileImportLogReportingId = TestData.FileImportLogReportingId1, + FileImportLogId = TestData.FileImportLogId1, FileReportingId = TestData.FileReportingId2, - MerchantReportingId = TestData.MerchantReportingId, + MerchantId = TestData.MerchantId, FileProfileId = TestData.FileProfileId, UserId = TestData.UserId, FileId = TestData.FileId2 @@ -818,7 +820,7 @@ public static List GetMerchantContractsResponseNoNullValueProd { FileImportLogId = TestData.FileImportLogId2, ImportLogDateTime = TestData.ImportLogEndDate, - EstateReportingId = TestData.EstateReportingId, + EstateId = TestData.EstateId, FileImportLogReportingId = TestData.FileImportLogReportingId2 }; @@ -826,9 +828,9 @@ public static List GetMerchantContractsResponseNoNullValueProd { new FileImportLogFile { - FileImportLogReportingId = TestData.FileImportLogReportingId2, - MerchantReportingId = TestData.MerchantReportingId, - FileReportingId = TestData.FileReportingId3, + FileImportLogId = TestData.FileImportLogId2, + MerchantId = TestData.MerchantId, + FileId = TestData.FileId, FilePath = "/home/txnproc/file3.csv", FileProfileId = TestData.FileProfileId, OriginalFileName = "Testfile3.csv", @@ -837,9 +839,9 @@ public static List GetMerchantContractsResponseNoNullValueProd }, new FileImportLogFile { - FileImportLogReportingId = TestData.FileImportLogReportingId2, - MerchantReportingId = TestData.MerchantReportingId, - FileReportingId = TestData.FileReportingId4, + FileImportLogId = TestData.FileImportLogId2, + MerchantId = TestData.MerchantId, + FileId = TestData.FileId4, FilePath = "/home/txnproc/file4.csv", FileProfileId = TestData.FileProfileId, OriginalFileName = "Testfile4.csv", diff --git a/FileProcessor/Bootstrapper/DomainEventHandlerRegistry.cs b/FileProcessor/Bootstrapper/DomainEventHandlerRegistry.cs index a048873..6a5e18a 100644 --- a/FileProcessor/Bootstrapper/DomainEventHandlerRegistry.cs +++ b/FileProcessor/Bootstrapper/DomainEventHandlerRegistry.cs @@ -7,6 +7,8 @@ using Lamar; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; +using Shared.DomainDrivenDesign.EventSourcing; +using Shared.EventStore.Aggregate; using Shared.EventStore.EventHandling; [ExcludeFromCodeCoverage] @@ -42,6 +44,7 @@ public DomainEventHandlerRegistry() this.AddSingleton(); this.For().Use().Named("Main") .Ctor>().Is(eventHandlersConfiguration).Singleton(); + this.AddSingleton, DomainEventFactory>(); } #endregion diff --git a/FileProcessor/Bootstrapper/MiscRegistry.cs b/FileProcessor/Bootstrapper/MiscRegistry.cs index 1496005..c9b7e9e 100644 --- a/FileProcessor/Bootstrapper/MiscRegistry.cs +++ b/FileProcessor/Bootstrapper/MiscRegistry.cs @@ -1,9 +1,15 @@ -namespace FileProcessor.Bootstrapper; +using Microsoft.Extensions.Logging; + +namespace FileProcessor.Bootstrapper; using BusinessLogic.Common; using BusinessLogic.Services; using Lamar; using Microsoft.Extensions.DependencyInjection; +using Shared.General; +using Shared.Middleware; +using System.Collections.Generic; +using System; using System.Diagnostics.CodeAnalysis; [ExcludeFromCodeCoverage] @@ -19,7 +25,38 @@ public MiscRegistry() this.AddSingleton(); this.AddSingleton(); this.AddSingleton(); + + bool logRequests = ConfigurationReaderExtensions.GetValueOrDefault("MiddlewareLogging", "LogRequests", true); + bool logResponses = ConfigurationReaderExtensions.GetValueOrDefault("MiddlewareLogging", "LogResponses", true); + LogLevel middlewareLogLevel = ConfigurationReaderExtensions.GetValueOrDefault("MiddlewareLogging", "MiddlewareLogLevel", LogLevel.Warning); + + RequestResponseMiddlewareLoggingConfig config = + new RequestResponseMiddlewareLoggingConfig(middlewareLogLevel, logRequests, logResponses); + + this.AddSingleton(config); } #endregion +} + +public static class ConfigurationReaderExtensions +{ + public static T GetValueOrDefault(String sectionName, String keyName, T defaultValue) + { + try + { + var value = ConfigurationReader.GetValue(sectionName, keyName); + + if (String.IsNullOrEmpty(value)) + { + return defaultValue; + } + + return (T)Convert.ChangeType(value, typeof(T)); + } + catch (KeyNotFoundException kex) + { + return defaultValue; + } + } } \ No newline at end of file diff --git a/FileProcessor/Common/Extensions.cs b/FileProcessor/Common/Extensions.cs index c75b875..f81d331 100644 --- a/FileProcessor/Common/Extensions.cs +++ b/FileProcessor/Common/Extensions.cs @@ -99,10 +99,8 @@ public static void PreWarm(this IApplicationBuilder applicationBuilder){ applicationBuilder.ConfigureSubscriptionService(subscriptionWorkersRoot, eventStoreConnectionString, - eventStoreClientSettings, eventHandlerResolvers, Extensions.log, - subscriptionRepositoryResolver, - CancellationToken.None).Wait(CancellationToken.None); + subscriptionRepositoryResolver).Wait(CancellationToken.None); } } \ No newline at end of file diff --git a/FileProcessor/Controllers/DomainEventController.cs b/FileProcessor/Controllers/DomainEventController.cs index 77b765c..dc8a405 100644 --- a/FileProcessor/Controllers/DomainEventController.cs +++ b/FileProcessor/Controllers/DomainEventController.cs @@ -65,12 +65,12 @@ public async Task PostEventAsync([FromBody] Object request, try { - Logger.LogInformation($"Processing event - ID [{domainEvent.EventId}], Type[{domainEvent.GetType().Name}]"); + Logger.LogWarning($"Processing event - ID [{domainEvent.EventId}], Type[{domainEvent.GetType().Name}]"); if (eventHandlers == null || eventHandlers.Any() == false) { // Log a warning out - Logger.LogWarning($"No event handlers configured for Event Type [{domainEvent.GetType().Name}]"); + Logger.LogInformation($"No event handlers configured for Event Type [{domainEvent.GetType().Name}]"); return this.Ok(); } @@ -82,7 +82,7 @@ public async Task PostEventAsync([FromBody] Object request, Task.WaitAll(tasks.ToArray()); - Logger.LogInformation($"Finished processing event - ID [{domainEvent.EventId}]"); + Logger.LogWarning($"Finished processing event - ID [{domainEvent.EventId}]"); return this.Ok(); } diff --git a/FileProcessor/FileProcessor.csproj b/FileProcessor/FileProcessor.csproj index ed3fd93..ebb89f5 100644 --- a/FileProcessor/FileProcessor.csproj +++ b/FileProcessor/FileProcessor.csproj @@ -18,7 +18,7 @@ - + diff --git a/FileProcessor/Startup.cs b/FileProcessor/Startup.cs index 3ba1f7d..023c6fe 100644 --- a/FileProcessor/Startup.cs +++ b/FileProcessor/Startup.cs @@ -139,6 +139,12 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF if (env.IsDevelopment()) { + var developmentNlogConfigFilename = "nlog.development.config"; + if (System.IO.File.Exists(Path.Combine(env.ContentRootPath, developmentNlogConfigFilename))) + { + nlogConfigFilename = developmentNlogConfigFilename; + } + app.UseDeveloperExceptionPage(); } @@ -149,11 +155,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF Logger.Initialise(logger); - Action loggerAction = message => - { - Logger.LogInformation(message); - }; - Startup.Configuration.LogConfiguration(loggerAction); + Startup.Configuration.LogConfiguration(Logger.LogWarning); ConfigurationReader.Initialise(Startup.Configuration); diff --git a/FileProcessor/nlog.config b/FileProcessor/nlog.config index 77f385f..a66fa4e 100644 --- a/FileProcessor/nlog.config +++ b/FileProcessor/nlog.config @@ -21,14 +21,23 @@ + + - - + + - +