diff --git a/DigitalData.UserManager.API/Program.cs b/DigitalData.UserManager.API/Program.cs index c55dd50..ffe6ccc 100644 --- a/DigitalData.UserManager.API/Program.cs +++ b/DigitalData.UserManager.API/Program.cs @@ -38,6 +38,10 @@ try { options.LogoutPath = "/api/auth/logout"; }); + builder.Services.AddDbContext(options => + options.UseSqlServer(builder.Configuration.GetConnectionString("DD_ECM_Connection")) + .EnableDetailedErrors()); + var allowedOrigins = builder.Configuration.GetSection("AllowedOrigins").Get() ?? throw new InvalidOperationException("In appsettings there is no allowed origin."); builder.Services.AddCors(options => @@ -53,9 +57,7 @@ try { }); //builder.Services.AddAutoMapper(typeof(DirectoryMappingProfile).Assembly); - builder.Services.AddUserManager(options => - options.UseSqlServer(builder.Configuration.GetConnectionString("DD_ECM_Connection")) - .EnableDetailedErrors()); + builder.Services.AddUserManager(); builder.Services.AddDirectorySearchService(); diff --git a/DigitalData.UserManager.Application/DIExtensions.cs b/DigitalData.UserManager.Application/DIExtensions.cs index d19e774..06e51ce 100644 --- a/DigitalData.UserManager.Application/DIExtensions.cs +++ b/DigitalData.UserManager.Application/DIExtensions.cs @@ -11,15 +11,15 @@ namespace DigitalData.UserManager.Application public static class DIExtensions { /// - /// Extension method to configure dependency injection for the UserManager application. + /// Adds the UserManager services and repositories to the specified . + /// This method registers the necessary mappings, repositories, and services for the UserManager. /// - /// - /// This method registers AutoMapper profiles, repositories, and services for the UserManager application. - /// - /// The IServiceCollection to add services to. + /// The type of the DbContext to use for the repositories. + /// The IServiceCollection to which the services will be added. /// The updated IServiceCollection. - public static IServiceCollection AddUserManager(this IServiceCollection services, Action? optionsAction) => services - .AddDbContext(optionsAction: optionsAction) + public static IServiceCollection AddUserManager(this IServiceCollection services) + where TDbContext : DbContext + => services .AddAutoMapper(typeof(UserMappingProfile).Assembly) .AddAutoMapper(typeof(GroupMappingProfile).Assembly) .AddAutoMapper(typeof(GroupOfUserMappingProfile).Assembly) @@ -27,12 +27,12 @@ namespace DigitalData.UserManager.Application .AddAutoMapper(typeof(ModuleOfUserMappingProfile).Assembly) .AddAutoMapper(typeof(UserRepMappingProfile).Assembly) - .AddScoped() - .AddScoped() - .AddScoped() - .AddScoped() - .AddScoped() - .AddScoped() + .AddScoped>() + .AddScoped>() + .AddScoped>() + .AddScoped>() + .AddScoped>() + .AddScoped>() .AddScoped() .AddScoped() diff --git a/DigitalData.UserManager.Infrastructure/Repositories/GroupOfUserRepository.cs b/DigitalData.UserManager.Infrastructure/Repositories/GroupOfUserRepository.cs index 53a5c10..8b92ead 100644 --- a/DigitalData.UserManager.Infrastructure/Repositories/GroupOfUserRepository.cs +++ b/DigitalData.UserManager.Infrastructure/Repositories/GroupOfUserRepository.cs @@ -5,9 +5,10 @@ using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { - public class GroupOfUserRepository : CRUDRepository, IGroupOfUserRepository + public class GroupOfUserRepository : CRUDRepository, IGroupOfUserRepository + where TDbContext : DbContext { - public GroupOfUserRepository(UserManagerDbContext dbContext) : base(dbContext) + public GroupOfUserRepository(TDbContext dbContext) : base(dbContext) { } diff --git a/DigitalData.UserManager.Infrastructure/Repositories/GroupRepository.cs b/DigitalData.UserManager.Infrastructure/Repositories/GroupRepository.cs index 843a8df..391942d 100644 --- a/DigitalData.UserManager.Infrastructure/Repositories/GroupRepository.cs +++ b/DigitalData.UserManager.Infrastructure/Repositories/GroupRepository.cs @@ -1,12 +1,14 @@ using DigitalData.Core.Infrastructure; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; +using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { - public class GroupRepository : CRUDRepository, IGroupRepository + public class GroupRepository : CRUDRepository, IGroupRepository + where TDbContext : DbContext { - public GroupRepository(UserManagerDbContext dbContext) : base(dbContext) + public GroupRepository(TDbContext dbContext) : base(dbContext) { } } diff --git a/DigitalData.UserManager.Infrastructure/Repositories/ModuleOfUserRepository.cs b/DigitalData.UserManager.Infrastructure/Repositories/ModuleOfUserRepository.cs index 1fd0df5..b05316e 100644 --- a/DigitalData.UserManager.Infrastructure/Repositories/ModuleOfUserRepository.cs +++ b/DigitalData.UserManager.Infrastructure/Repositories/ModuleOfUserRepository.cs @@ -5,9 +5,10 @@ using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { - public class ModuleOfUserRepository : CRUDRepository, IModuleOfUserRepository + public class ModuleOfUserRepository : CRUDRepository, IModuleOfUserRepository + where TDbContext : DbContext { - public ModuleOfUserRepository(UserManagerDbContext dbContext) : base(dbContext) + public ModuleOfUserRepository(TDbContext dbContext) : base(dbContext) { } diff --git a/DigitalData.UserManager.Infrastructure/Repositories/ModuleRepository.cs b/DigitalData.UserManager.Infrastructure/Repositories/ModuleRepository.cs index a451fc5..885a077 100644 --- a/DigitalData.UserManager.Infrastructure/Repositories/ModuleRepository.cs +++ b/DigitalData.UserManager.Infrastructure/Repositories/ModuleRepository.cs @@ -1,12 +1,14 @@ using DigitalData.Core.Infrastructure; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; +using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { - public class ModuleRepository : CRUDRepository, IModuleRepository + public class ModuleRepository : CRUDRepository, IModuleRepository + where TDbContext : DbContext { - public ModuleRepository(UserManagerDbContext dbContext) : base(dbContext) + public ModuleRepository(TDbContext dbContext) : base(dbContext) { } } diff --git a/DigitalData.UserManager.Infrastructure/Repositories/UserRepRepository.cs b/DigitalData.UserManager.Infrastructure/Repositories/UserRepRepository.cs index 6933962..66995ec 100644 --- a/DigitalData.UserManager.Infrastructure/Repositories/UserRepRepository.cs +++ b/DigitalData.UserManager.Infrastructure/Repositories/UserRepRepository.cs @@ -5,9 +5,10 @@ using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { - public class UserRepRepository : CRUDRepository, IUserRepRepository + public class UserRepRepository : CRUDRepository, IUserRepRepository + where TDbContext : DbContext { - public UserRepRepository(UserManagerDbContext dbContext) : base(dbContext) + public UserRepRepository(TDbContext dbContext) : base(dbContext) { } diff --git a/DigitalData.UserManager.Infrastructure/Repositories/UserRepository.cs b/DigitalData.UserManager.Infrastructure/Repositories/UserRepository.cs index 83327cf..b4ade42 100644 --- a/DigitalData.UserManager.Infrastructure/Repositories/UserRepository.cs +++ b/DigitalData.UserManager.Infrastructure/Repositories/UserRepository.cs @@ -5,11 +5,12 @@ using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { - public class UserRepository : CRUDRepository, IUserRepository + public class UserRepository : CRUDRepository, IUserRepository + where TDbContext : DbContext { private IModuleOfUserRepository _moduleOfUserRepo; private IGroupOfUserRepository _groupOfUserRepo; - public UserRepository(UserManagerDbContext dbContext, IModuleOfUserRepository moduleOfUserRepo, IGroupOfUserRepository groupOfUserRepo) : base(dbContext) + public UserRepository(TDbContext dbContext, IModuleOfUserRepository moduleOfUserRepo, IGroupOfUserRepository groupOfUserRepo) : base(dbContext) { _moduleOfUserRepo = moduleOfUserRepo; _groupOfUserRepo = groupOfUserRepo; diff --git a/DigitalData.UserManager.Infrastructure/UserManagerDbContext.cs b/DigitalData.UserManager.Infrastructure/UserManagerDbContext.cs index 633172a..0c28fb8 100644 --- a/DigitalData.UserManager.Infrastructure/UserManagerDbContext.cs +++ b/DigitalData.UserManager.Infrastructure/UserManagerDbContext.cs @@ -1,5 +1,4 @@ -using DigitalData.UserManager.Domain.Entities; -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories {