93 lines
3.3 KiB
C#
93 lines
3.3 KiB
C#
using CuentasCobrar.CORE.Entities;
|
|
using CuentasCobrar.CORE.Interfaces;
|
|
using CuentasCobrar.CORE.Pagination;
|
|
using CuentasCobrar.CORE.QueryFilters;
|
|
using CuentasCobrar.INFRASTRUCTURE.Data;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace CuentasCobrar.INFRASTRUCTURE.Repositories
|
|
{
|
|
/// <summary>
|
|
/// Clase encargada de realizar todos las operaciones de lectura, modificación y adición de datos
|
|
/// en la tabla <c>Usuario</c> de la base de datos.
|
|
/// </summary>
|
|
/// <remarks> Implementa la interfaz <c>IUsuarioRepo</c> </remarks>
|
|
public class UsuarioRepo : IUsuarioRepo
|
|
{
|
|
/// <summary>
|
|
/// Contexto de la base de datos en SQL Server.
|
|
/// </summary>
|
|
private readonly CuentasCobrarContext _cuentasCobrarContext;
|
|
public UsuarioRepo(CuentasCobrarContext cuentasCobrarContext)
|
|
{
|
|
_cuentasCobrarContext = cuentasCobrarContext;
|
|
}
|
|
|
|
public async Task<List<Usuario>> Get()
|
|
{
|
|
var usuarios = await _cuentasCobrarContext.Usuarios.OrderBy(x => x.Nombre).ToListAsync();
|
|
return usuarios;
|
|
}
|
|
|
|
public async Task<ListaDePaginacion<Usuario>> Get(PaginacionQueryFilter filtros)
|
|
{
|
|
var usuarios = await _cuentasCobrarContext.Usuarios.OrderBy(x => x.Nombre).ToListAsync();
|
|
var usuariosPaginados = new ListaDePaginacion<Usuario>(usuarios, filtros.NumeroDePagina, filtros.RegistrosPorPagina);
|
|
|
|
return usuariosPaginados;
|
|
}
|
|
public async Task<Usuario> Get(string username)
|
|
{
|
|
var usuario = await _cuentasCobrarContext.Usuarios.FirstOrDefaultAsync(x => x.IdUsuario == username);
|
|
return usuario;
|
|
}
|
|
public async Task<Usuario> GetUsuarioPorCorreo(string correo)
|
|
{
|
|
var usuario = await _cuentasCobrarContext.Usuarios.FirstOrDefaultAsync(x => x.Correo == correo);
|
|
return usuario;
|
|
}
|
|
public async Task<bool> Post(Usuario usuario)
|
|
{
|
|
bool agregado = false;
|
|
await _cuentasCobrarContext.Usuarios.AddAsync(usuario);
|
|
int filasAfectadas = await _cuentasCobrarContext.SaveChangesAsync();
|
|
if (filasAfectadas > 0)
|
|
{
|
|
agregado = true;
|
|
}
|
|
return agregado;
|
|
}
|
|
public async Task<bool> Put(Usuario usuario)
|
|
{
|
|
try
|
|
{
|
|
var usuarioActual = await Get(usuario.IdUsuario);
|
|
usuarioActual.Nombre = usuario.Nombre;
|
|
usuarioActual.Apellido1 = usuario.Apellido1;
|
|
usuarioActual.Apellido2 = usuario.Apellido2;
|
|
usuarioActual.Correo = usuario.Correo;
|
|
usuarioActual.Habilitado = usuario.Habilitado;
|
|
await _cuentasCobrarContext.SaveChangesAsync();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public async Task<bool> Delete(string id)
|
|
{
|
|
bool eliminado = false;
|
|
var usuario = await Get(id);
|
|
_cuentasCobrarContext.Remove(usuario);
|
|
int filasAfectadas = await _cuentasCobrarContext.SaveChangesAsync();
|
|
if (filasAfectadas > 0)
|
|
{
|
|
eliminado = true;
|
|
}
|
|
return eliminado;
|
|
}
|
|
}
|
|
}
|