public static void UpdateExchangeRate() { string currencyJsonUrl = "https://www.doviz.com/api/v1/currencies/all/latest"; string currencyJsonSerializeList; using (CurrencyContext context = new CurrencyContext()) { using (var webClient = new WebClient()) { currencyJsonSerializeList = webClient.DownloadString(currencyJsonUrl); } dynamic currencyDeserializeList = JsonConvert.DeserializeObject(currencyJsonSerializeList); context.Database.ExecuteSqlCommand("Delete From ExchangeRateData"); foreach (var currencyDeserializeItem in currencyDeserializeList) { ExchangeRateData exchangeRate = new Entities.Model.ExchangeRateData { Id = currencyDeserializeItem.currency, CurrencyCode = Iso4217CurrencyCodeList.GetCurrencyCode(currencyDeserializeItem.code.ToString()), Buying = currencyDeserializeItem.buying, Selling = currencyDeserializeItem.selling, Name = currencyDeserializeItem.name, FullName = currencyDeserializeItem.full_name, ChangeRate = currencyDeserializeItem.change_rate, CreatedDate = DateTime.Now, }; context.ExchangeRate.Add(exchangeRate); var exchangeRateHistory = new ExchangeRateHistory { CurrencyCode = exchangeRate.CurrencyCode, Buying = exchangeRate.Buying, Selling = exchangeRate.Selling, ChangeRate = exchangeRate.ChangeRate, Name = currencyDeserializeItem.name, FullName = currencyDeserializeItem.full_name, CreatedDate = DateTime.Now }; context.ExchangeRateHistory.Add(exchangeRateHistory); } context.SaveChanges(); } }
private void AddYesterdayRatesToBitcoinRateList(IDictionary <string, BitcoinExchangeRate> bitcoinRates, ExchangeRate alternativeRates, ExchangeRateHistory yesterdayUSDRate) { if (yesterdayUSDRate != null && bitcoinRates != null && bitcoinRates.ContainsKey(USD_RATE_KEY)) { if (alternativeRates?.Rates != null && alternativeRates.Rates.Count > 0) { foreach (var rate in alternativeRates.Rates) { if (bitcoinRates.ContainsKey(rate.Key)) { bitcoinRates[rate.Key].YesterdayRate = Math.Round(rate.Value * yesterdayUSDRate.HistoryValue, 2); } } } if (bitcoinRates.ContainsKey(USD_RATE_KEY)) { bitcoinRates[USD_RATE_KEY].YesterdayRate = Math.Round(yesterdayUSDRate.HistoryValue, 2); } } }