using CuentasCobrar.CORE.Entities; using CuentasCobrar.CORE.Interfaces; using CuentasCobrar.INFRASTRUCTURE.Data; using Microsoft.EntityFrameworkCore; namespace CuentasCobrar.INFRASTRUCTURE.Repositories { /// /// Clase encargada de realizar todos las operaciones de lectura, modificación y adición de datos /// en la tabla Rol De Usuario de la base de datos. /// /// Implementa la interfaz IRolDeUsuarioRepo public class RolDeUsuarioRepo : IRolDeUsuarioRepo { /// /// Contexto de la base de datos en SQL Server. /// private readonly CuentasCobrarContext _cuentasCobrarContext; public RolDeUsuarioRepo(CuentasCobrarContext cuentasCobrarContext) { _cuentasCobrarContext = cuentasCobrarContext; } public async Task> Get(string idUsuario) { var rolesDeUsuario = await _cuentasCobrarContext.RolesDeUsuarios.Where(x => x.IdUsuario == idUsuario).OrderBy(x => x.DescripcionDeRol).ToListAsync(); return rolesDeUsuario; } public async Task Get(string idUsuario, int idRol) { var rolDeUsuario = await _cuentasCobrarContext.RolesDeUsuarios.FirstOrDefaultAsync(x => x.IdUsuario == idUsuario && x.IdRol == idRol); return rolDeUsuario; } public async Task Post(RolDeUsuario RolDeUsuario) { bool agregado = false; await _cuentasCobrarContext.RolesDeUsuarios.AddAsync(RolDeUsuario); int filasAfectadas = await _cuentasCobrarContext.SaveChangesAsync(); if (filasAfectadas > 0) { agregado = true; } return agregado; } public async Task Delete(string idUsuario, int idRol) { bool eliminado = false; var rolDeUsuario = await Get(idUsuario, idRol); _cuentasCobrarContext.Remove(rolDeUsuario); int filasAfectadas = await _cuentasCobrarContext.SaveChangesAsync(); if (filasAfectadas > 0) { eliminado = true; } return eliminado; } } }