/// <summary> /// Gets global data about all curencies and assets. /// </summary> /// <param name="Currency">Fiat currency to convert to.</param> /// <returns>Object containing global data.</returns> public static async Task <GlobalData> GetGlobalData(Currencies Currency = Currencies.USD) => await GlobalData.GetDataAsync(Currency).ConfigureAwait(false);
private static async Task <GlobalData> ParseResponseAsync(string response, Currencies currency) { GlobalData data = new GlobalData(); data.Currency = currency; using (JsonTextReader jtr = new JsonTextReader(new StringReader(response))) { while (await jtr.ReadAsync().ConfigureAwait(false)) { if (jtr.Value != null) { if (jtr.Value.ToString() == "total_market_cap_usd") { await jtr.ReadAsync().ConfigureAwait(false); data.TotalMarketCapUSD = Convert.ToDouble(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "total_24h_volume_usd") { await jtr.ReadAsync().ConfigureAwait(false); data.Total24HourVolumeUSD = Convert.ToDouble(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "bitcoin_percentage_of_market_cap") { await jtr.ReadAsync().ConfigureAwait(false); data.BitcoinPercentageOfMarketCap = Convert.ToDouble(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "active_currencies") { await jtr.ReadAsync().ConfigureAwait(false); data.ActiveCurrencies = Convert.ToInt32(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "active_assets") { await jtr.ReadAsync().ConfigureAwait(false); data.ActiveAssets = Convert.ToInt32(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "active_markets") { await jtr.ReadAsync().ConfigureAwait(false); data.ActiveMarkets = Convert.ToInt32(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "last_updated") { await jtr.ReadAsync().ConfigureAwait(false); data.LastUpdated = Convert.ToInt32(jtr.Value.ToString()); } else if (jtr.Value.ToString() == "error") { await jtr.ReadAsync().ConfigureAwait(false); data.Error = jtr.Value.ToString(); } else if (jtr.Value.ToString() == string.Format("total_market_cap_{0}", currency.ToString().ToLower())) { await jtr.ReadAsync().ConfigureAwait(false); data.TotalMarketCap = Convert.ToDouble(jtr.Value.ToString()); } else if (jtr.Value.ToString() == string.Format("total_24h_volume_{0}", currency.ToString().ToLower())) { await jtr.ReadAsync().ConfigureAwait(false); data.Total24HourVolume = Convert.ToDouble(jtr.Value.ToString()); } } else { continue; } } } if (currency == Currencies.USD) { data.TotalMarketCap = data.TotalMarketCapUSD; data.Total24HourVolume = data.Total24HourVolumeUSD; } return(data); }