コード例 #1
0
        /*
         * ¿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
                });
            }
        }
コード例 #2
0
        public async Task <IActionResult> GetMonedasAceptadas()
        {
            var monedasAceptadas = await _utilsService.GetMonedasAceptadas();

            return(Ok(monedasAceptadas));
        }