Esempio n. 1
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}");
            }
        }
Esempio n. 2
0
        private static Task SetExchangeRates(string origdata)
        {
            var completed = Task.Delay(0);

            try
            {
                dynamic message  = JsonConvert.DeserializeObject(origdata);
                string  data     = message.data.Value;
                var     exchange = JsonConvert.DeserializeObject <ExchangeRateJson>(data);
                if (exchange?.exchanges_fiat == null || exchange.exchanges == null)
                {
                    return(completed);
                }
                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);

                // TODO check where and why we have this
                ApplicationStateManager.OnExchangeUpdated();
            }
            catch (Exception e)
            {
                NHLog.Error("NHWebSocket", $"SetExchangeRates error: {e.Message}");
            }
            return(completed);
        }