public static async Task <ExchangeRatesSeries> GetCurrencyExchangeRatesAsync(string currency)
        {
            ExchangeRatesSeries res = new ExchangeRatesSeries();

            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = await client
                                               .GetAsync($"http://api.nbp.pl/api/exchangerates/rates/c/{currency}/?format=json")
                                               .ConfigureAwait(false);

                if (response.IsSuccessStatusCode == true)
                {
                    string apiResponse = response.Content.ReadAsStringAsync().Result;
                    res = JsonConvert.DeserializeObject <ExchangeRatesSeries>(apiResponse);
                }
            }

            return(res);
        }
Example #2
0
        public async Task SaveRate()
        {
            var response = await Client.GetAsync(
                "/api/exchangerates/rates/a/chf/");

            response.EnsureSuccessStatusCode();

            var exchangeRate = await response.Content.ReadAsStringAsync();

            XmlSerializer       serializer          = new XmlSerializer(typeof(ExchangeRatesSeries), new XmlRootAttribute("ExchangeRatesSeries"));
            StringReader        stringReader        = new StringReader(exchangeRate);
            ExchangeRatesSeries exchangeRatesSeries = (ExchangeRatesSeries)serializer.Deserialize(stringReader);

            _context.ExchangeRate.Add(new ExchangeRate()
            {
                Code = exchangeRatesSeries.Code, Table = exchangeRatesSeries.Table, Currency = exchangeRatesSeries.Currency, Rates = new List <Rate>()
                {
                    ToExchangeRateMap(exchangeRatesSeries.Rates)
                }
            });

            await _context.SaveChangesAsync();
        }