feat: Abhängigkeit von IUserRepRepository hinzugefügt und Unterstützung für zugehörige Löschungen in UserRepository

This commit is contained in:
Developer 02 2024-10-30 16:12:39 +01:00
parent 1273b7ac46
commit 97cefb3fea

View File

@ -9,11 +9,16 @@ namespace DigitalData.UserManager.Infrastructure.Repositories
where TDbContext : DbContext, IUserManagerDbContext where TDbContext : DbContext, IUserManagerDbContext
{ {
private readonly IModuleOfUserRepository _moduleOfUserRepo; private readonly IModuleOfUserRepository _moduleOfUserRepo;
private readonly IGroupOfUserRepository _groupOfUserRepo; private readonly IGroupOfUserRepository _groupOfUserRepo;
public UserRepository(TDbContext dbContext, IModuleOfUserRepository moduleOfUserRepo, IGroupOfUserRepository groupOfUserRepo) : base(dbContext, dbContext.Users)
private readonly IUserRepRepository _uRepRepo;
public UserRepository(TDbContext dbContext, IModuleOfUserRepository moduleOfUserRepo, IGroupOfUserRepository groupOfUserRepo, IUserRepRepository userRepRepository) : base(dbContext, dbContext.Users)
{ {
_moduleOfUserRepo = moduleOfUserRepo; _moduleOfUserRepo = moduleOfUserRepo;
_groupOfUserRepo = groupOfUserRepo; _groupOfUserRepo = groupOfUserRepo;
_uRepRepo = userRepRepository;
} }
public async Task<IEnumerable<User>> ReadByModuleIdAsync(int moduleId) public async Task<IEnumerable<User>> ReadByModuleIdAsync(int moduleId)
@ -48,14 +53,22 @@ namespace DigitalData.UserManager.Infrastructure.Repositories
//TODO: instead of this implmenet .OnDelete(DeleteBehavior.ClientCascade) in DbContext //TODO: instead of this implmenet .OnDelete(DeleteBehavior.ClientCascade) in DbContext
public override async Task<bool> DeleteAsync(User user) public override async Task<bool> DeleteAsync(User user)
{ {
IEnumerable<ModuleOfUser> mou = await _moduleOfUserRepo.ReadByUserAsync(user.Username); var mou = await _moduleOfUserRepo.ReadByUserAsync(user.Username);
if(mou.Any()) if (mou.Any())
_dbContext.RemoveRange(mou); _dbContext.RemoveRange(mou);
IEnumerable<GroupOfUser> gou = await _groupOfUserRepo.ReadByUsernameAsync(user.Username); var gou = await _groupOfUserRepo.ReadByUsernameAsync(user.Username);
if(gou.Any()) if (gou.Any())
_dbContext.RemoveRange(gou); _dbContext.RemoveRange(gou);
var uRep_list = await _uRepRepo.ReadAllAsync(userId: user.Id);
if (uRep_list.Any())
_dbContext.RemoveRange(uRep_list);
uRep_list = await _uRepRepo.ReadAllAsync(repUserId: user.Id);
if (uRep_list.Any())
_dbContext.RemoveRange(uRep_list);
return await base.DeleteAsync(user); return await base.DeleteAsync(user);
} }
} }