Exemplo n.º 1
0
 private void fetch_bitcoin_rate()
 {
     int refetch_interval_minutes = 60;
     bool need_to_fetch = false;
     if (!exchange_rates.Keys.Contains("BTC"))
     {
         exchange_rates["BTC"] = new exchange_rate();
         need_to_fetch = true;
     }
     else if (exchange_rates["BTC"].time_fetched.AddMinutes(refetch_interval_minutes) < DateTime.Now)
     {
         need_to_fetch = true;
     }
     if (need_to_fetch)
     {
         string url = "http://www.bitcoincharts.com/t/weighted_prices.json";
         string data = urlread(url);
         JObject j = JsonConvert.DeserializeObject<JObject>(data);
         exchange_rates["BTC"].rate = 1.0 / Convert.ToDouble(j["USD"]["24h"].ToString());
         exchange_rates["BTC"].time_fetched = DateTime.Now;
         save_exchange_rates_in_settings();
     }
 }
Exemplo n.º 2
0
 private void fetch_currency_exchange_rates()
 {
     bool need_to_fetch = check_currencies_must_be_updated();
     if (need_to_fetch)
     {
         string url = "http://openexchangerates.org/latest.json";
         string data = urlread(url);
         DateTime time_fetched = DateTime.Now;
         JObject j = JsonConvert.DeserializeObject<JObject>(data);
         foreach (JProperty rate in j["rates"])
         {
             string code = rate.Name;
             double rate_value = Convert.ToDouble(rate.Value.ToString());
             if (!(exchange_rates.Keys.Contains(code)))
             {
                 exchange_rates[code] = new exchange_rate();
             }
             exchange_rates[code].rate = rate_value;
             exchange_rates[code].time_fetched = time_fetched;
         }
         save_exchange_rates_in_settings();
     }
 }
Exemplo n.º 3
0
 private bool check_currency_list_for_refresh(string[] currency_list)
 {
     int refetch_interval_minutes = 60;
     bool need_to_fetch = false;
     foreach (string code in currency_list)
     {
         if (!(exchange_rates.Keys.Contains(code)))
         {
             exchange_rates[code] = new exchange_rate();
             need_to_fetch = true;
         }
         else if (exchange_rates[code].time_fetched.AddMinutes(refetch_interval_minutes) < DateTime.Now)
         {
             need_to_fetch = true;
         }
     }
     return need_to_fetch;
 }