From 44a9971cf8c88ff4d1957b495f78e07d95a84c34 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 1 Oct 2025 14:08:41 +0200 Subject: [PATCH] refactor(DependencyInjection.Config): add AddSQLExecutor method --- EnvelopeGenerator.GeneratorAPI/Program.cs | 6 +-- ...cyExtensions.cs => DependencyInjection.cs} | 39 ++++++++++++------- EnvelopeGenerator.Web/Program.cs | 2 +- 3 files changed, 28 insertions(+), 19 deletions(-) rename EnvelopeGenerator.Infrastructure/{DependencyExtensions.cs => DependencyInjection.cs} (90%) diff --git a/EnvelopeGenerator.GeneratorAPI/Program.cs b/EnvelopeGenerator.GeneratorAPI/Program.cs index 51953c7b..3579ae72 100644 --- a/EnvelopeGenerator.GeneratorAPI/Program.cs +++ b/EnvelopeGenerator.GeneratorAPI/Program.cs @@ -187,7 +187,7 @@ try builder.Services .AddEnvelopeGeneratorInfrastructureServices(opt => { - opt.ConfigureDbTriggerParams(config); + opt.AddDbTriggerParams(config); opt.AddDbContext((provider, options) => { var logger = provider.GetRequiredService>(); @@ -196,8 +196,8 @@ try .EnableSensitiveDataLogging() .EnableDetailedErrors(); }); - }, - sqlExecutorConfigureOptions: executor => executor.ConnectionString = connStr) + opt.AddSQLExecutor(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/DependencyInjection.cs similarity index 90% rename from EnvelopeGenerator.Infrastructure/DependencyExtensions.cs rename to EnvelopeGenerator.Infrastructure/DependencyInjection.cs index 66e8f9b0..cb63f4c7 100644 --- a/EnvelopeGenerator.Infrastructure/DependencyExtensions.cs +++ b/EnvelopeGenerator.Infrastructure/DependencyInjection.cs @@ -21,7 +21,7 @@ using System; namespace EnvelopeGenerator.Infrastructure { - public static class DIExtensions + public static class DependencyInjection { /// /// Registers the required repositories for the Envelope Generator service to the given . @@ -38,13 +38,7 @@ namespace EnvelopeGenerator.Infrastructure /// will be created per HTTP request (or per scope) within the dependency injection container. /// [Obsolete("Use IRepository")] - public static IServiceCollection AddEnvelopeGeneratorInfrastructureServices(this IServiceCollection services, - Action options -#if NET - , IConfiguration? sqlExecutorConfiguration = null, - Action? sqlExecutorConfigureOptions = null -#endif - ) + public static IServiceCollection AddEnvelopeGeneratorInfrastructureServices(this IServiceCollection services, Action options) { // configure custom options options(new Config(services)); @@ -67,10 +61,8 @@ namespace EnvelopeGenerator.Infrastructure { // scan EnvelopeGenerator opt.RegisterFromAssembly(typeof(Config).Assembly); - // scan UserManager opt.RegisterFromAssembly(typeof(User).Assembly); - #if NET // scan EmailProfilerDispatcher opt.RegisterFromAssembly(typeof(EmailOut).Assembly); @@ -94,9 +86,6 @@ namespace EnvelopeGenerator.Infrastructure services.AddScoped(); services.AddScoped(); services.AddScoped(); - - if (sqlExecutorConfiguration is not null || sqlExecutorConfigureOptions is not null) - services.AddSQLExecutor(sqlExecutorConfiguration, sqlExecutorConfigureOptions); #endif return services; @@ -179,12 +168,12 @@ namespace EnvelopeGenerator.Infrastructure _services = services; } - public void ConfigureDbTriggerParams(IConfiguration configuration) + public void AddDbTriggerParams(IConfiguration configuration) { _services.Configure(configuration.GetSection(nameof(DbTriggerParams))); } - public void ConfigureDbTriggerParams(Action configureOptions) + public void AddDbTriggerParams(Action configureOptions) { _services.Configure(configureOptions); } @@ -198,6 +187,26 @@ namespace EnvelopeGenerator.Infrastructure { _services.AddDbContext(dbContextOptions); } + +#if NET + public void AddSQLExecutor(IConfiguration configuration) + { + _services.Configure(configuration); + + _services.AddSingleton(); + + _services.AddSQLExecutor(configuration, null); + } + + public void AddSQLExecutor(Action options) + { + _services.Configure(options); + + _services.AddSingleton(); + + _services.AddSQLExecutor(null, options); + } +#endif } } } \ No newline at end of file diff --git a/EnvelopeGenerator.Web/Program.cs b/EnvelopeGenerator.Web/Program.cs index 1b91ea6f..51b71527 100644 --- a/EnvelopeGenerator.Web/Program.cs +++ b/EnvelopeGenerator.Web/Program.cs @@ -106,7 +106,7 @@ try builder.Services.AddEnvelopeGeneratorInfrastructureServices( opt => { - opt.ConfigureDbTriggerParams(config); + opt.AddDbTriggerParams(config); opt.AddDbContext((provider, options) => { var logger = provider.GetRequiredService>();