From 05867cc645e5f3acbf512a27d99add1c02756a1d Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Mon, 12 May 2025 16:35:48 +0200 Subject: [PATCH] Update DIExtensions for enhanced DbContext configuration Modified the `AddEnvelopeGeneratorInfrastructureServices` method to accept a service provider, allowing for more complex DbContext configurations. Added a using directive for `Microsoft.Extensions.DependencyInjection` in `Program.cs`. Updated the method call to utilize the new signature, enabling logging of SQL commands and sensitive data during database operations. --- .../DependencyExtensions.cs | 2 +- EnvelopeGenerator.Web/Program.cs | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs b/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs index f7e4adb4..09f94b40 100644 --- a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs +++ b/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs @@ -33,7 +33,7 @@ public static class DIExtensions /// will be created per HTTP request (or per scope) within the dependency injection container. /// public static IServiceCollection AddEnvelopeGeneratorInfrastructureServices(this IServiceCollection services, - Action? dbContextOptions = null, + Action? dbContextOptions = null, IConfiguration? sqlExecutorConfiguration = null, Action? sqlExecutorConfigureOptions = null) { diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs index b5d46448..d39f998a 100644 --- a/EnvelopeGenerator.Web/Program.cs +++ b/EnvelopeGenerator.Web/Program.cs @@ -17,6 +17,8 @@ using EnvelopeGenerator.Web.Sanitizers; using EnvelopeGenerator.Application.Contracts.Services; using EnvelopeGenerator.Web.Models.Annotation; using DigitalData.UserManager.DependencyInjection; +using Microsoft.Extensions.DependencyInjection; +using System; var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); logger.Info("Logging initialized!"); @@ -98,7 +100,13 @@ try }); // Add envelope generator services - builder.Services.AddEnvelopeGeneratorInfrastructureServices(options => options.UseSqlServer(connStr)); + builder.Services.AddEnvelopeGeneratorInfrastructureServices((provider, options) => + { + var logger = provider.GetRequiredService>(); + options.UseSqlServer(connStr) + .LogTo(log => logger.LogInformation("{log}", log), Microsoft.Extensions.Logging.LogLevel.Trace) + .EnableSensitiveDataLogging(); + }); builder.Services.AddEnvelopeGeneratorServices(config);