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); }
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()); }