From e552658d2e577aa3fa3ecdb7c95abc8f3c3df0b6 Mon Sep 17 00:00:00 2001 From: TekH Date: Tue, 25 Nov 2025 15:11:47 +0100 Subject: [PATCH] Support generic DbContext in AddInfrastructureServices Updated AddInfrastructureServices to support a generic TRecDbContext type parameter, enabling the use of custom DbContext types. Modified AddDbContext and AddDbRepository to use the generic TRecDbContext type. Added an overload of AddInfrastructureServices that defaults to RecDbContext for backward compatibility. These changes enhance flexibility and reusability while maintaining compatibility with existing implementations. --- src/ReC.Infrastructure/DependencyInjection.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ReC.Infrastructure/DependencyInjection.cs b/src/ReC.Infrastructure/DependencyInjection.cs index a9653a0..fc51b58 100644 --- a/src/ReC.Infrastructure/DependencyInjection.cs +++ b/src/ReC.Infrastructure/DependencyInjection.cs @@ -7,7 +7,8 @@ namespace ReC.Infrastructure; public static class DependencyInjection { - public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, Action options) + public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, Action options) + where TRecDbContext : RecDbContext { var configOpt = new ConfigurationOptions(); options.Invoke(configOpt); @@ -17,11 +18,14 @@ public static class DependencyInjection services.AddDbContext(configOpt.DbContextOptionsAction); - services.AddDbRepository(opt => opt.RegisterFromAssembly(typeof(RecAction).Assembly)); + services.AddDbRepository(opt => opt.RegisterFromAssembly(typeof(RecAction).Assembly)); return services; } + public static IServiceCollection AddInfrastructureServices(this IServiceCollection services, Action options) + => services.AddInfrastructureServices(options); + public class ConfigurationOptions { internal Action? DbContextOptionsAction { get; private set; }