예제 #1
0
        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();
            }
        }
예제 #2
0
        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");
            }
        }