using DigitalData.Core.CleanArchitecture.Infrastructure; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { public class UserRepRepository : CRUDRepository, IUserRepRepository { public UserRepRepository(DDECMDbContext dbContext) : base(dbContext) { } public async Task> ReadAllAsync(bool withUser = false, bool withRepGroup = false, bool withRightGroup = false, bool withRepUser = false, int? userId = null) { var query = _dbSet.AsQueryable(); if (withUser) query = query.Include(ur => ur.User); if (withRepGroup) query = query.Include(ur => ur.RepGroup); if (withRightGroup) query = query.Include(ur => ur.RightGroup); if (withRepUser) query = query.Include(ur => ur.RepUser); if(userId is not null) { query = query.Where(ur => ur.UserId == userId); } return await query.ToListAsync(); } } }