Exemplo n.º 1
0
        public async Task <ExchangeRatesInfo> GetRatesInfo(ExchangeRatesParams exchangeRatesInfo)
        {
            var dates = exchangeRatesInfo.Dates.TransformToDates();

            await _currencySymbolsExRatesApiHelper.ValidateSymbols(this, exchangeRatesInfo.BaseCurrency, exchangeRatesInfo.TargetCurrency);

            var values = new List <HistoryItemExRatesApi>();

            foreach (var date in dates)
            {
                var historyItem = await GetRatesOnDate(date.ToFormattedString(), exchangeRatesInfo.BaseCurrency, exchangeRatesInfo.TargetCurrency);

                values.Add(historyItem);
            }

            return(values.TransformToExchangeRatesInfo());
        }
Exemplo n.º 2
0
        public async Task <ExchangeRatesInfo> GetRatesInfo(ExchangeRatesParams exchangeRatesInfo)
        {
            var      dates     = exchangeRatesInfo.Dates.TransformToDates();
            DateTime startDate = dates.Min();
            DateTime endDate   = dates.Max();

            var uri = $"timeseries?start_date={startDate.ToFormattedString()}&end_date={endDate.ToFormattedString()}&base={exchangeRatesInfo.BaseCurrency.ToUpper()}&symbols={exchangeRatesInfo.TargetCurrency.ToUpper()}";
            var httpResponseMessage = await _httpClient.GetAsync(uri);

            var responseString = await httpResponseMessage.Content.ReadAsStringAsync();

            if (!httpResponseMessage.IsSuccessStatusCode)
            {
                throw new HttpRequestException(responseString);
            }

            var response = JsonConvert.DeserializeObject <TimeseriesResponseApiExchangerate>(responseString);

            return(response.TransformToExchangeRatesInfo(dates));
        }
        public async Task <ActionResult> GetExchangeRatesInfo([FromQuery] ExchangeRatesParams exchangeRatesInfo)
        {
            var result = await _apiExchangeRatesService.GetRatesInfo(exchangeRatesInfo);

            return(Ok(result));
        }