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