Beispiel #1
0
        public decimal RealizarCambio(string idOrigen, string idDestino, decimal valor)
        {
            ListaFactores = _repositorio.ObtenerFactores();
            var origen   = _repositorio.BuscarMonedaPorIdentificador(idOrigen);
            var destino  = _repositorio.BuscarMonedaPorIdentificador(idDestino);
            var busqueda = ListaFactores.FirstOrDefault(
                f => f.IdMonedaOrigen == origen.Id &&
                f.IdMonedaDestino == destino.Id);

            if (busqueda != null)
            {
                return(valor * busqueda.Factor);
            }
            return(-1);
        }
Beispiel #2
0
        public async Task <IActionResult> VerConversor(HomeViewModel model)
        {
            if (ModelState.IsValid)
            {
                var listaMonedas = _repositorio.ObtenerMonedas();
                var error        = "";
                var resultado    = _conversionMoneda.RealizarCambio(model.IdOrigen, model.IdDestino, model.Cantidad);

                if (resultado == -1)
                {
                    error = "No se ha podido realizar el cambio";
                }
                var user = await GetCurrentUserAsync();

                var idOrigen  = _repositorio.BuscarMonedaPorIdentificador(model.IdOrigen);
                var idDestino = _repositorio.BuscarMonedaPorIdentificador(model.IdDestino);
                var factor    = _repositorio.BuscarFactorPorOrigenDestino(idOrigen.Id, idDestino.Id);

                _repositorio.CrearHistorial(new Historial
                {
                    IdOrigen  = model.IdOrigen,
                    IdDestino = model.IdDestino,
                    IdUsuario = user.Id,
                    Factor    = factor.Factor,
                    Cantidad  = model.Cantidad,
                    Resultado = resultado,
                    Fecha     = DateTime.Now
                });

                var conversorViewModel = new ConversionViewModel
                {
                    IdOrigen     = model.IdOrigen,
                    IdDestino    = model.IdDestino,
                    Cantidad     = model.Cantidad,
                    Resultado    = resultado,
                    ListaMonedas = listaMonedas,
                    ErrorMsg     = error,
                    Historiales  = _repositorio.BuscarNHistoriales(0, 10, user.Id)
                };
                return(View(conversorViewModel));
            }
            return(View());
        }