using DigitalData.Core.Infrastructure; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; using Microsoft.EntityFrameworkCore; namespace DigitalData.UserManager.Infrastructure.Repositories { public class ModuleOfUserRepository : CRUDRepository, IModuleOfUserRepository where TDbContext : DbContext { public ModuleOfUserRepository(TDbContext dbContext) : base(dbContext) { } private IQueryable ReadByUser(string username) { return _dbSet.Where(mou => mou.User!.Username == username).Include(mou => mou.Module); } public IQueryable ReadByModuleId(int moduleId) { return _dbSet.Where(mou => mou.ModuleId == moduleId); } public async Task> ReadByModelUserIdAsync(int moduleId, int userId) { return await _dbSet.Where(mou => mou.ModuleId == moduleId && mou.UserId == userId).ToListAsync(); } public async Task> ReadByUserAsync(string username) => await ReadByUser(username).ToListAsync(); } }