public void RegistrarMensajeLog(string mensaje) { using (ComprasDbContext contextoLog = new ComprasDbContext()) { var log = new Log(); log.ID_LOG = Guid.NewGuid().ToString(); log.Mensaje = mensaje; log.Fecha = DateTime.Now.ToString(); contextoLog.Add(log); contextoLog.SaveChanges(); } }
public async Task <string> RegistrarCompra(string id, decimal monto, string moneda) { if (!(moneda == "dolar" || moneda == "real")) { return("No está permitido el uso de la moneda: " + moneda); } string url = URLServicio(moneda); decimal valorMoneda = await ValorMoneda(url); decimal factor = TransformarValorMoneda(valorMoneda, moneda); decimal montoCalculado = monto / factor; decimal limite = RetornarLimite(moneda); using (ComprasDbContext context = new ComprasDbContext()) { // Se valida cuánto ha comprado el cliente en el mes para saber si no se rebasa el límite // Dolar: 200 , Real: 300 string mesActual = DateTime.Now.Date.Month.ToString(); string anoActual = DateTime.Now.Date.Year.ToString(); decimal montoAcumulado = context.Compras.Where(c => c.ID_USER == Convert.ToInt32(id) && c.MONEDA == moneda && c.MES == mesActual && c.ANO == anoActual).Sum(c => c.VALOR); if (!(montoAcumulado + montoCalculado < limite)) { return("Se excede el tope mensual permitido"); } // Se hace el registro de compra var compra = new Compras(); compra.ID_COMPRA = Guid.NewGuid().ToString(); compra.ID_USER = Convert.ToInt32(id); compra.VALOR = Convert.ToDecimal(montoCalculado); compra.MONEDA = moneda; compra.FECHA = DateTime.Now.Date.ToShortDateString(); compra.DIA = DateTime.Now.Date.Day.ToString(); compra.MES = DateTime.Now.Date.Month.ToString(); compra.ANO = DateTime.Now.Date.Year.ToString(); context.Add(compra); context.SaveChanges(); return("Se ha realizado la compra"); } }