示例#1
0
        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();
            }
        }
示例#2
0
        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);
                }
            }
        }