/* * ¿Qué opina de pasar el id de usuario como input del endpoint? ¿Cómo mejoraría la * transacción para asegurarnos de que el usuario que pidió la compra es quien dice ser? * * Para asegurarnos que el id del usuario sea el correcto, el usuario deberia autenticarse primero y podriamos * utilizar un token para asegurar la creacion de la transaccion */ public async Task <Response <Cotizacion> > GetCotizacion(string moneda) { try { var monedasAceptadasList = await _utilsService.GetMonedasAceptadas(); if (string.IsNullOrEmpty(moneda) || !monedasAceptadasList.Any(m => m.Value.Equals(moneda.ToLower()))) { throw new Exception(Constants.MONEDA_NO_ACEPTADA); } var response = await _client.GetAsync(Constants.BANCO_PROVINCIA_END_POINT_URL); var content = response.Content.ReadAsStringAsync().Result; string[] result = content.Replace('[', ' ').Replace(']', ' ').Replace('"', ' ').Split(','); Cotizacion cotizacion = new Cotizacion(); cotizacion.Compra = Convert.ToDecimal(result[0]); cotizacion.Venta = Convert.ToDecimal(result[1]); cotizacion.Mensaje = result[2]; if (moneda.Equals(Constants.MONEDA_REAL)) { cotizacion.Compra *= Constants.COTIZACION_REAL_DOLAR; cotizacion.Venta *= Constants.COTIZACION_REAL_DOLAR; } return(new Response <Cotizacion>() { Success = true, Data = cotizacion }); } catch (Exception ex) { return(new Response <Cotizacion>() { Success = false, Message = ex.Message }); } }
public async Task <IActionResult> GetMonedasAceptadas() { var monedasAceptadas = await _utilsService.GetMonedasAceptadas(); return(Ok(monedasAceptadas)); }