コード例 #1
0
        private static void SetExchangeRates(string data)
        {
            try
            {
                var exchange = JsonConvert.DeserializeObject <ExchangeRateJson>(data);
                if (exchange?.exchanges_fiat != null && exchange.exchanges != null)
                {
                    foreach (var exchangePair in exchange.exchanges)
                    {
                        if (exchangePair.TryGetValue("coin", out var coin) &&
                            coin == "BTC" &&
                            exchangePair.TryGetValue("USD", out var usd) &&
                            double.TryParse(usd, NumberStyles.Float, CultureInfo.InvariantCulture, out var usdD))
                        {
                            ExchangeRateApi.UsdBtcRate = usdD;
                            break;
                        }
                    }

                    ExchangeRateApi.UpdateExchangesFiat(exchange.exchanges_fiat);

                    OnExchangeUpdate?.Invoke(null, EventArgs.Empty);
                }
            }
            catch (Exception e)
            {
                Helpers.ConsolePrint("SOCKET", e.ToString());
            }
        }
コード例 #2
0
        private static void SetExchangeRates(string data)
        {
            try
            {
                var exchange = JsonConvert.DeserializeObject <ExchangeRateJson>(data);
                if (exchange?.exchanges_fiat == null || exchange.exchanges == null)
                {
                    return;
                }
                foreach (var exchangePair in exchange.exchanges)
                {
                    if (!exchangePair.TryGetValue("coin", out var coin) || coin != "BTC" ||
                        !exchangePair.TryGetValue("USD", out var usd) ||
                        !double.TryParse(usd, NumberStyles.Float, CultureInfo.InvariantCulture, out var usdD))
                    {
                        continue;
                    }

                    ExchangeRateApi.UsdBtcRate = usdD;
                    break;
                }

                ExchangeRateApi.UpdateExchangesFiat(exchange.exchanges_fiat);

                OnExchangeUpdate?.Invoke(null, EventArgs.Empty);
            }
            catch (Exception e)
            {
                NHM.Common.Logger.Error("SOCKET", $"SetExchangeRates error: {e.Message}");
            }
        }
コード例 #3
0
        private static void SetExchangeRates(string data)
        {
            NiceHashExchange exchange = null;

            try
            {
                exchange = JsonConvert.DeserializeObject <NiceHashExchange>(data);
            }
            catch { }
            if (exchange?.exchanges != null)
            {
                foreach (var ex in exchange.exchanges)
                {
                    if (!ex.ContainsKey("USD") || !ex.ContainsKey("coin") || ex["coin"] != "BTC")
                    {
                        continue;
                    }
                    if (double.TryParse(ex["USD"], out var val))
                    {
                        ExchangeRateApi.UsdBtcRate = val;
                    }
                }
            }
            if (exchange?.exchanges_fiat != null)
            {
                ExchangeRateApi.ExchangesFiat = exchange.exchanges_fiat;
            }

            OnExchangeUpdate.Emit(null, EventArgs.Empty);
        }
コード例 #4
0
 internal void UpdateExchangesFiat(double usdBtcRate, Dictionary <string, double> newExchanges)
 {
     UsdBtcRate = usdBtcRate;
     if (newExchanges != null)
     {
         _fiatCurrencyKeys = newExchanges.Keys.ToList();
         _fiatCurrencyKeys.Add("USD");
         _fiatCurrencyKeys.Sort();
         OnPropertyChanged(nameof(HasFiatCurrencyOptions));
         OnPropertyChanged(nameof(FiatCurrencyOptions));
         //OnPropertyChanged(nameof(SelectedFiatCurrency)); // ????
         foreach (var key in newExchanges.Keys)
         {
             ExchangesFiat.AddOrUpdate(key, newExchanges[key], (k, v) => newExchanges[k]);
         }
     }
     CalculateFiatBalance();
     // trigger property changed for all fiat related stuff
     OnExchangeUpdate?.Invoke(this, EventArgs.Empty);
 }
コード例 #5
0
 public static void OnExchangeUpdated()
 {
     OnExchangeUpdate?.Invoke(null, EventArgs.Empty);
 }