Add files via upload
This commit is contained in:
16
src/CoinMarketCap/Currencies.cs
Normal file
16
src/CoinMarketCap/Currencies.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
namespace Kalakoi.Crypto.CoinMarketCap
|
||||
{
|
||||
/// <summary>
|
||||
/// Fiat currencies available for price conversions.
|
||||
/// </summary>
|
||||
public enum Currencies
|
||||
{
|
||||
USD, AUD, BRL, CAD, CHF,
|
||||
CLP, CNY, CZK, DKK, EUR,
|
||||
GBP, HKD, HUF, IDR, ILS,
|
||||
INR, JPY, KRW, MXN, MYR,
|
||||
NOK, NZD, PHP, PKR, PLN,
|
||||
RUB, SEK, SGD, THB, TRY,
|
||||
TWD, ZAR
|
||||
}
|
||||
}
|
||||
140
src/CoinMarketCap/GlobalData.cs
Normal file
140
src/CoinMarketCap/GlobalData.cs
Normal file
@@ -0,0 +1,140 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kalakoi.Crypto.CoinMarketCap
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides access to global data provided by CoinMarketCap
|
||||
/// </summary>
|
||||
public class GlobalData
|
||||
{
|
||||
/// <summary>
|
||||
/// Market capitalization in USD.
|
||||
/// </summary>
|
||||
public double TotalMarketCapUSD { get; private set; }
|
||||
/// <summary>
|
||||
/// 24 Hour trade volume in USD.
|
||||
/// </summary>
|
||||
public double Total24HourVolumeUSD { get; private set; }
|
||||
/// <summary>
|
||||
/// Bitcoin percentage dominance.
|
||||
/// </summary>
|
||||
public double BitcoinPercentageOfMarketCap { get; private set; }
|
||||
/// <summary>
|
||||
/// Number of active currencies on CoinMarketCap.
|
||||
/// </summary>
|
||||
public int ActiveCurrencies { get; private set; }
|
||||
/// <summary>
|
||||
/// Number of active assets on CoinMarketCap.
|
||||
/// </summary>
|
||||
public int ActiveAssets { get; private set; }
|
||||
/// <summary>
|
||||
/// Number of active markets on CoinMarketCap.
|
||||
/// </summary>
|
||||
public int ActiveMarkets { get; private set; }
|
||||
/// <summary>
|
||||
/// Timestamp for when API was last updated.
|
||||
/// </summary>
|
||||
public int LastUpdated { get; private set; }
|
||||
/// <summary>
|
||||
/// Currency specified for value conversions.
|
||||
/// </summary>
|
||||
public Currencies Currency { get; private set; }
|
||||
/// <summary>
|
||||
/// Market capitalization in specified currency.
|
||||
/// </summary>
|
||||
public double TotalMarketCap { get; private set; }
|
||||
/// <summary>
|
||||
/// 24 hour trade volume in specified currency.
|
||||
/// </summary>
|
||||
public double Total24HourVolume { get; private set; }
|
||||
|
||||
private GlobalData() { }
|
||||
|
||||
internal static async Task<GlobalData> GetDataAsync(Currencies currency = Currencies.USD)
|
||||
{
|
||||
Uri uri = GetUri(currency);
|
||||
string response = await RestServices.GetResponseAsync(uri).ConfigureAwait(false);
|
||||
return await ParseResponseAsync(response, currency).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private static Uri GetUri(Currencies currency)
|
||||
{
|
||||
string BaseUrl = @"https://api.coinmarketcap.com/v1/global/{0}";
|
||||
string AdditionFormat = "?convert={0}";
|
||||
string Addition = string.Empty;
|
||||
if (currency != Currencies.USD)
|
||||
Addition = string.Format(AdditionFormat, currency.ToString());
|
||||
return new Uri(string.Format(BaseUrl, Addition));
|
||||
}
|
||||
|
||||
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() == 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
384
src/CoinMarketCap/Ticker.cs
Normal file
384
src/CoinMarketCap/Ticker.cs
Normal file
@@ -0,0 +1,384 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Kalakoi.Crypto.CoinMarketCap
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides access to ticker data provided by CoinMarketCap
|
||||
/// </summary>
|
||||
public class Ticker
|
||||
{
|
||||
/// <summary>
|
||||
/// ID specific to CoinMarketCap.
|
||||
/// </summary>
|
||||
public string ID { get; private set; }
|
||||
/// <summary>
|
||||
/// Currency name.
|
||||
/// </summary>
|
||||
public string Name { get; private set; }
|
||||
/// <summary>
|
||||
/// Ticker symbol.
|
||||
/// </summary>
|
||||
public string Symbol { get; private set; }
|
||||
/// <summary>
|
||||
/// Rank among all active assets by market capitalization.
|
||||
/// </summary>
|
||||
public int Rank { get; private set; }
|
||||
/// <summary>
|
||||
/// Price per unit in USD.
|
||||
/// </summary>
|
||||
public double PriceUSD { get; private set; }
|
||||
/// <summary>
|
||||
/// Price per unit in BTC.
|
||||
/// </summary>
|
||||
public double PriceBTC { get; private set; }
|
||||
/// <summary>
|
||||
/// 24 hour trade volume in USD.
|
||||
/// </summary>
|
||||
public double Volume24HourUSD { get; private set; }
|
||||
/// <summary>
|
||||
/// Market capitalization in USD.
|
||||
/// </summary>
|
||||
public double MarketCapUSD { get; private set; }
|
||||
/// <summary>
|
||||
/// Available coin supply.
|
||||
/// </summary>
|
||||
public double AvailableSupply { get; private set; }
|
||||
/// <summary>
|
||||
/// Total coin supply.
|
||||
/// </summary>
|
||||
public double TotalSupply { get; private set; }
|
||||
/// <summary>
|
||||
/// Maximum coin supply, if applicable.
|
||||
/// </summary>
|
||||
public double MaxSupply { get; private set; }
|
||||
/// <summary>
|
||||
/// Percentage price change in last hour.
|
||||
/// </summary>
|
||||
public double PercentChange1Hour { get; private set; }
|
||||
/// <summary>
|
||||
/// Percentage price change in last 24 hours.
|
||||
/// </summary>
|
||||
public double PercentChange24Hour { get; private set; }
|
||||
/// <summary>
|
||||
/// Percentage price change in last 7 days.
|
||||
/// </summary>
|
||||
public double PercentChange7Day { get; private set; }
|
||||
/// <summary>
|
||||
/// Timestamp of when API was last updated.
|
||||
/// </summary>
|
||||
public int LastUpdated { get; private set; }
|
||||
/// <summary>
|
||||
/// Fiat currency to convert values to.
|
||||
/// </summary>
|
||||
public Currencies Currency { get; private set; }
|
||||
/// <summary>
|
||||
/// Price per unit in specified currency.
|
||||
/// </summary>
|
||||
public double Price { get; private set; }
|
||||
/// <summary>
|
||||
/// 24 hour trade volume in specified currency.
|
||||
/// </summary>
|
||||
public double Volume24Hour { get; private set; }
|
||||
/// <summary>
|
||||
/// Market capitalization in specified currency.
|
||||
/// </summary>
|
||||
public double MarketCap { get; private set; }
|
||||
|
||||
private Ticker() { }
|
||||
|
||||
internal static async Task<List<Ticker>> GetTickersAsync(Currencies currency = Currencies.USD, int start = 0, int limit = 100)
|
||||
{
|
||||
Uri uri = GetListUri(currency, start, limit);
|
||||
string response = await RestServices.GetResponseAsync(uri).ConfigureAwait(false);
|
||||
return await ParseListResponseAsync(response, currency).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
internal static async Task<Ticker> GetTickerAsync(string id, Currencies currency = Currencies.USD)
|
||||
{
|
||||
Uri uri = GetSingleUri(currency, id);
|
||||
string response = await RestServices.GetResponseAsync(uri).ConfigureAwait(false);
|
||||
return await ParseSingleResponseAsync(response, currency).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
private static Uri GetListUri(Currencies currency, int start, int limit)
|
||||
{
|
||||
string BaseUrl = @"https://api.coinmarketcap.com/v1/ticker/";
|
||||
string AdditionFormat = "{0}{1}={2}";
|
||||
string UrlAddition = string.Empty;
|
||||
bool HasFirstAddition = false;
|
||||
if (currency != Currencies.USD)
|
||||
{
|
||||
UrlAddition += string.Format(AdditionFormat, HasFirstAddition ? "&" : "?", "convert", currency.ToString());
|
||||
HasFirstAddition = true;
|
||||
}
|
||||
if (start != 0)
|
||||
{
|
||||
UrlAddition += string.Format(AdditionFormat, HasFirstAddition ? "&" : "?", "start", start.ToString());
|
||||
HasFirstAddition = true;
|
||||
}
|
||||
if (limit != 100)
|
||||
{
|
||||
UrlAddition += string.Format(AdditionFormat, HasFirstAddition ? "&" : "?", "limit", limit.ToString());
|
||||
HasFirstAddition = true;
|
||||
}
|
||||
return new Uri(BaseUrl + UrlAddition);
|
||||
}
|
||||
|
||||
private static Uri GetSingleUri(Currencies currency, string id)
|
||||
{
|
||||
string BaseUrl = @"https://api.coinmarketcap.com/v1/ticker/{0}/{1}";
|
||||
string AdditionFormat = "?convert={0}";
|
||||
string Addition = string.Empty;
|
||||
if (currency != Currencies.USD)
|
||||
Addition = string.Format(AdditionFormat, currency.ToString());
|
||||
return new Uri(string.Format(BaseUrl, id, Addition));
|
||||
}
|
||||
|
||||
private static async Task<List<Ticker>> ParseListResponseAsync(string response, Currencies currency)
|
||||
{
|
||||
List<Ticker> TickerList = new List<Ticker>();
|
||||
Ticker ToAdd = new Ticker();
|
||||
ToAdd.Currency = currency;
|
||||
using (JsonTextReader jtr = new JsonTextReader(new StringReader(response)))
|
||||
{
|
||||
while (await jtr.ReadAsync().ConfigureAwait(false))
|
||||
{
|
||||
if (jtr.TokenType.ToString() == "StartObject")
|
||||
{
|
||||
if (!string.IsNullOrEmpty(ToAdd.Name))
|
||||
{
|
||||
if (currency == Currencies.USD)
|
||||
{
|
||||
ToAdd.Price = ToAdd.PriceUSD;
|
||||
ToAdd.Volume24Hour = ToAdd.Volume24HourUSD;
|
||||
ToAdd.MarketCap = ToAdd.MarketCapUSD;
|
||||
}
|
||||
TickerList.Add(ToAdd);
|
||||
}
|
||||
ToAdd = new Ticker();
|
||||
ToAdd.Currency = currency;
|
||||
continue;
|
||||
}
|
||||
if (jtr.Value != null)
|
||||
{
|
||||
if (jtr.Value.ToString() == "id")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.ID = jtr.Value.ToString();
|
||||
}
|
||||
else if (jtr.Value.ToString() == "name")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Name = jtr.Value.ToString();
|
||||
}
|
||||
else if (jtr.Value.ToString() == "symbol")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Symbol = jtr.Value.ToString();
|
||||
}
|
||||
else if (jtr.Value.ToString() == "rank")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Rank = Convert.ToInt32(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "price_usd")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PriceUSD = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "price_btc")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PriceBTC = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "24h_volume_usd")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Volume24HourUSD = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "market_cap_usd")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.MarketCapUSD = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "available_supply")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.AvailableSupply = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "total_supply")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.TotalSupply = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "max_supply")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.MaxSupply = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "percent_change_1h")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PercentChange1Hour = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "percent_change_24h")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PercentChange24Hour = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "percent_change_7d")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PercentChange7Day = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "last_updated")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.LastUpdated = Convert.ToInt32(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == string.Format("price_{0}", currency.ToString().ToLower()))
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Price = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == string.Format("24h_volume_{0}", currency.ToString().ToLower()))
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Volume24Hour = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == string.Format("market_cap_{0}", currency.ToString().ToLower()))
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.MarketCap = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(ToAdd.Name))
|
||||
{
|
||||
if (currency == Currencies.USD)
|
||||
{
|
||||
ToAdd.Price = ToAdd.PriceUSD;
|
||||
ToAdd.Volume24Hour = ToAdd.Volume24HourUSD;
|
||||
ToAdd.MarketCap = ToAdd.MarketCapUSD;
|
||||
}
|
||||
TickerList.Add(ToAdd);
|
||||
}
|
||||
return TickerList;
|
||||
}
|
||||
|
||||
private static async Task<Ticker> ParseSingleResponseAsync(string response, Currencies currency)
|
||||
{
|
||||
Ticker ToAdd = new Ticker();
|
||||
ToAdd.Currency = currency;
|
||||
using (JsonTextReader jtr = new JsonTextReader(new StringReader(response)))
|
||||
{
|
||||
while (await jtr.ReadAsync().ConfigureAwait(false))
|
||||
{
|
||||
if (jtr.Value != null)
|
||||
{
|
||||
if (jtr.Value.ToString() == "id")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.ID = jtr.Value.ToString();
|
||||
}
|
||||
else if (jtr.Value.ToString() == "name")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Name = jtr.Value.ToString();
|
||||
}
|
||||
else if (jtr.Value.ToString() == "symbol")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Symbol = jtr.Value.ToString();
|
||||
}
|
||||
else if (jtr.Value.ToString() == "rank")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Rank = Convert.ToInt32(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "price_usd")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PriceUSD = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "price_btc")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PriceBTC = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "24h_volume_usd")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Volume24HourUSD = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "market_cap_usd")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.MarketCapUSD = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "available_supply")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.AvailableSupply = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "total_supply")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.TotalSupply = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "max_supply")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.MaxSupply = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "percent_change_1h")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PercentChange1Hour = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "percent_change_24h")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PercentChange24Hour = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "percent_change_7d")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.PercentChange7Day = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == "last_updated")
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.LastUpdated = Convert.ToInt32(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == string.Format("price_{0}", currency.ToString().ToLower()))
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Price = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == string.Format("24h_volume_{0}", currency.ToString().ToLower()))
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.Volume24Hour = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else if (jtr.Value.ToString() == string.Format("market_cap_{0}", currency.ToString().ToLower()))
|
||||
{
|
||||
await jtr.ReadAsync().ConfigureAwait(false);
|
||||
ToAdd.MarketCap = Convert.ToDouble(jtr.Value.ToString());
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
}
|
||||
return ToAdd;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user