From 82d4b7ec6a4f60c47c4b50e428faa6ed65d7f924 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 1 Oct 2025 13:25:52 +0200 Subject: [PATCH] feat(infrastructure): refactor DIExtensions for DbContext registration * Removed `dbContextOptions` parameter from `AddEnvelopeGeneratorInfrastructureServices` * Moved `AddDbContext` registration into `Config` class with overloads for both `Action` and `Action` * Simplified service registration flow and improved extensibility --- EnvelopeGenerator.GeneratorAPI/Program.cs | 14 ++++++++++++- .../DependencyExtensions.cs | 21 ++++++++++--------- EnvelopeGenerator.Web/Program.cs | 17 ++++++++------- 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/EnvelopeGenerator.GeneratorAPI/Program.cs b/EnvelopeGenerator.GeneratorAPI/Program.cs index ecb7abf3..51953c7b 100644 --- a/EnvelopeGenerator.GeneratorAPI/Program.cs +++ b/EnvelopeGenerator.GeneratorAPI/Program.cs @@ -185,7 +185,19 @@ try // Envelope generator serives #pragma warning disable CS0618 // Type or member is obsolete builder.Services - .AddEnvelopeGeneratorInfrastructureServices(sqlExecutorConfigureOptions: executor => executor.ConnectionString = connStr) + .AddEnvelopeGeneratorInfrastructureServices(opt => + { + opt.ConfigureDbTriggerParams(config); + opt.AddDbContext((provider, options) => + { + var logger = provider.GetRequiredService>(); + options.UseSqlServer(connStr) + .LogTo(log => logger.LogInformation("{log}", log), Microsoft.Extensions.Logging.LogLevel.Trace) + .EnableSensitiveDataLogging() + .EnableDetailedErrors(); + }); + }, + sqlExecutorConfigureOptions: executor => executor.ConnectionString = connStr) .AddEnvelopeGeneratorServices(config); #pragma warning restore CS0618 // Type or member is obsolete diff --git a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs b/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs index c25bc014..66e8f9b0 100644 --- a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs +++ b/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs @@ -39,12 +39,7 @@ namespace EnvelopeGenerator.Infrastructure /// [Obsolete("Use IRepository")] public static IServiceCollection AddEnvelopeGeneratorInfrastructureServices(this IServiceCollection services, - Action options, - Action -#if NET - ? -#endif - dbContextOptions = null + Action options #if NET , IConfiguration? sqlExecutorConfiguration = null, Action? sqlExecutorConfigureOptions = null @@ -53,10 +48,6 @@ namespace EnvelopeGenerator.Infrastructure { // configure custom options options(new Config(services)); - - if (dbContextOptions != null) - services.AddDbContext(dbContextOptions); - #if NET services.TryAddScoped(); services.TryAddScoped(); @@ -197,6 +188,16 @@ namespace EnvelopeGenerator.Infrastructure { _services.Configure(configureOptions); } + + public void AddDbContext(Action dbContextOptions) + { + _services.AddDbContext(dbContextOptions); + } + + public void AddDbContext(Action dbContextOptions) + { + _services.AddDbContext(dbContextOptions); + } } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs index 7904c7ea..1b91ea6f 100644 --- a/EnvelopeGenerator.Web/Program.cs +++ b/EnvelopeGenerator.Web/Program.cs @@ -104,14 +104,17 @@ try // Add envelope generator services #pragma warning disable CS0618 // Type or member is obsolete builder.Services.AddEnvelopeGeneratorInfrastructureServices( - opt => opt.ConfigureDbTriggerParams(config), - (provider, options) => + opt => { - var logger = provider.GetRequiredService>(); - options.UseSqlServer(connStr) - .LogTo(log => logger.LogInformation("{log}", log), Microsoft.Extensions.Logging.LogLevel.Trace) - .EnableSensitiveDataLogging() - .EnableDetailedErrors(); + opt.ConfigureDbTriggerParams(config); + opt.AddDbContext((provider, options) => + { + var logger = provider.GetRequiredService>(); + options.UseSqlServer(connStr) + .LogTo(log => logger.LogInformation("{log}", log), Microsoft.Extensions.Logging.LogLevel.Trace) + .EnableSensitiveDataLogging() + .EnableDetailedErrors(); + }); }); #pragma warning restore CS0618 // Type or member is obsolete