TFS_ANTIGUO/TPAtesa_CuentasCobrar/CuentasCobrar.INFRASTRUCTURE/Repositories/MonedaRepo.cs

80 lines
No EOL
2.5 KiB
C#

using CuentasCobrar.CORE.Entities;
using CuentasCobrar.CORE.Interfaces;
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>Moneda</c> de la base de datos.
/// </summary>
/// <remarks> Implementa la interfaz <c>IMonedaRepo</c> </remarks>
public class MonedaRepo : IMonedaRepo
{
/// <summary>
/// Contexto de la base de datos en SQL Server.
/// </summary>
private readonly CuentasCobrarContext _cuentasCobrarContext;
public MonedaRepo(CuentasCobrarContext cuentasCobrarContext)
{
_cuentasCobrarContext = cuentasCobrarContext;
}
public async Task<IEnumerable<Moneda>> Get()
{
var monedas = await _cuentasCobrarContext.Monedas.OrderBy(x => x.Descripcion).ToListAsync();
return monedas;
}
public async Task<Moneda> Get(int id)
{
var moneda = await _cuentasCobrarContext.Monedas.FirstOrDefaultAsync(x => x.IdMoneda == id);
return moneda;
}
public async Task<bool> Post(Moneda moneda)
{
bool agregado = false;
await _cuentasCobrarContext.Monedas.AddAsync(moneda);
int filasAfectadas = await _cuentasCobrarContext.SaveChangesAsync();
if (filasAfectadas > 0)
{
agregado = true;
}
return agregado;
}
public async Task<bool> Put(Moneda moneda)
{
try
{
var monedaActual = await Get(moneda.IdMoneda);
monedaActual.Descripcion = moneda.Descripcion;
monedaActual.Simbolo = moneda.Simbolo;
monedaActual.Habilitado = moneda.Habilitado;
await _cuentasCobrarContext.SaveChangesAsync();
}
catch (Exception)
{
return false;
}
return true;
}
public async Task<bool> Delete(int id)
{
bool modificado = false;
var moneda = await Get(id);
_cuentasCobrarContext.Remove(moneda);
int filasAfectadas = await _cuentasCobrarContext.SaveChangesAsync();
if (filasAfectadas > 0)
{
modificado = true;
}
return modificado;
}
}
}