public async Task <GenericTickers> GetTickers(int limit) { GenericTickers tickers = new GenericTickers(); try { string uri = $"{BaseUri}/ticker/?limit={limit}"; _httpWebRequest = WebRequest.Create(uri) as HttpWebRequest; if (_httpWebRequest != null) { _httpWebRequest.Method = "GET"; _httpWebRequest.Accept = "application/json"; using (_httpWebResponse = await _httpWebRequest.GetResponseAsync() as HttpWebResponse) { if (_httpWebResponse != null) { _streamReader = new StreamReader(_httpWebResponse.GetResponseStream() ?? throw new InvalidOperationException()); } JArray resultsJson = JsonConvert.DeserializeObject <JArray>(_streamReader.ReadToEnd()); foreach (JObject ticker in resultsJson.Children <JObject>()) { tickers.Tickers.Add(new GenericTicker( ticker["id"].ToString(), ticker["name"].ToString(), ticker["symbol"].ToString(), ticker["rank"].ToString(), ticker["price_usd"].ToString(), ticker["price_btc"].ToString(), ticker["24h_volume_usd"].ToString(), ticker["market_cap_usd"].ToString(), ticker["available_supply"].ToString(), ticker["total_supply"].ToString(), ticker["max_supply"].ToString(), ticker["percent_change_1h"].ToString(), ticker["percent_change_24h"].ToString(), ticker["percent_change_7d"].ToString(), ticker["last_updated"].ToString()) ); } } } } catch (Exception) { // ignored } return(tickers); }
public async Task <StockExchangePairTable> GetCryptoMarketCapTable(GenericTickers tickers, List <string> selectedPairs) { StockExchangePairTable stockExchangePairTable = new StockExchangePairTable(); await Task.Run(() => { //stockExchangePairTable.HeaderNames.Add("Id"); stockExchangePairTable.HeaderNames.Add("Rank"); stockExchangePairTable.HeaderNames.Add("Name"); stockExchangePairTable.HeaderNames.Add("Symbol"); stockExchangePairTable.HeaderNames.Add("Price USD"); stockExchangePairTable.HeaderNames.Add("Price BTC"); stockExchangePairTable.HeaderNames.Add("Volume 24 Hours USD"); stockExchangePairTable.HeaderNames.Add("Market Cap USD"); stockExchangePairTable.HeaderNames.Add("Available Supply"); stockExchangePairTable.HeaderNames.Add("Total Supply"); stockExchangePairTable.HeaderNames.Add("Maximum Supply"); stockExchangePairTable.HeaderNames.Add("Percent Change 1 Hour"); stockExchangePairTable.HeaderNames.Add("Percent Change 1 Day"); stockExchangePairTable.HeaderNames.Add("Percent Change 1 Week"); stockExchangePairTable.HeaderNames.Add("Last Updated"); if (selectedPairs.Count > 0) { foreach (GenericTicker ticker in tickers.Tickers) { foreach (string selectedPair in selectedPairs) { if (ticker.Symbol.Equals(selectedPair.Split('/')[0]) || ticker.Symbol.Equals(selectedPair.Split('/')[1])) { StockExchangeDataRow stockExchangeDataRow = new StockExchangeDataRow(); //stockExchangeDataRow.DataRows.Add(ticker.Id); stockExchangeDataRow.DataRows.Add(ticker.Rank); stockExchangeDataRow.DataRows.Add(ticker.Name); stockExchangeDataRow.DataRows.Add(ticker.Symbol.ToUpper()); stockExchangeDataRow.DataRows.Add(ticker.PriceUsd); stockExchangeDataRow.DataRows.Add(ticker.PriceBtc); stockExchangeDataRow.DataRows.Add(ticker.Volume1DayUsd); stockExchangeDataRow.DataRows.Add(ticker.MarketCapUsd); stockExchangeDataRow.DataRows.Add(ticker.AvailableSupply); stockExchangeDataRow.DataRows.Add(ticker.TotalSupply); stockExchangeDataRow.DataRows.Add(ticker.MaximumSupply); stockExchangeDataRow.DataRows.Add(ticker.PercentChange1Hour); stockExchangeDataRow.DataRows.Add(ticker.PercentChange1Day); stockExchangeDataRow.DataRows.Add(ticker.PercentChange1Week); stockExchangeDataRow.DataRows.Add(ticker.LastUpdated); stockExchangePairTable.StockExchangeDataRows.Add(stockExchangeDataRow); break; } } } } else { foreach (GenericTicker ticker in tickers.Tickers) { StockExchangeDataRow stockExchangeDataRow = new StockExchangeDataRow(); //stockExchangeDataRow.DataRows.Add(ticker.Id); stockExchangeDataRow.DataRows.Add(ticker.Rank); stockExchangeDataRow.DataRows.Add(ticker.Name); stockExchangeDataRow.DataRows.Add(ticker.Symbol.ToUpper()); stockExchangeDataRow.DataRows.Add(ticker.PriceUsd); stockExchangeDataRow.DataRows.Add(ticker.PriceBtc); stockExchangeDataRow.DataRows.Add(ticker.Volume1DayUsd); stockExchangeDataRow.DataRows.Add(ticker.MarketCapUsd); stockExchangeDataRow.DataRows.Add(ticker.AvailableSupply); stockExchangeDataRow.DataRows.Add(ticker.TotalSupply); stockExchangeDataRow.DataRows.Add(ticker.MaximumSupply); stockExchangeDataRow.DataRows.Add(ticker.PercentChange1Hour); stockExchangeDataRow.DataRows.Add(ticker.PercentChange1Day); stockExchangeDataRow.DataRows.Add(ticker.PercentChange1Week); stockExchangeDataRow.DataRows.Add(ticker.LastUpdated); stockExchangePairTable.StockExchangeDataRows.Add(stockExchangeDataRow); } } }); return(stockExchangePairTable); }