public async Task <AssetPairs> GetAssetPairsAsync(NetworkProviderContext context) { var api = ApiProvider.GetApi(context); var rRaw = await api.GetSymbolPriceTickerAsync().ConfigureAwait(false); CheckResponseErrors(rRaw); var r = rRaw.GetContent(); var assetPairs = new AssetPairs(); foreach (var rPrice in r.OrderBy(x => x.symbol.Length)) { var pair = AssetsUtilities.GetAssetPair(rPrice.symbol, assetPairs); if (!pair.HasValue) { continue; } assetPairs.Add(new AssetPair(pair.Value.AssetCode1, pair.Value.AssetCode2, this)); } return(assetPairs); }
public async Task <MarketPrices> GetPricesAsync(PublicPricesContext context) { var api = ApiProvider.GetApi(context); var r = await api.GetTickersAsync().ConfigureAwait(false); if (r == null || r.Count == 0) { throw new ApiResponseException("No tickers returned", this); } var prices = new MarketPrices(); var knownPairs = new AssetPairs(); if (context.IsRequestAll) { foreach (var rPrice in r.OrderBy(x => x.Key.Length)) { var tPair = AssetsUtilities.GetAssetPair(rPrice.Key, knownPairs); if (!tPair.HasValue) { continue; } var pair = new AssetPair(tPair.Value.AssetCode1, tPair.Value.AssetCode2, this); knownPairs.Add(pair); prices.Add(new MarketPrice(Network, pair, rPrice.Value.ticker.last) { PriceStatistics = new PriceStatistics(Network, pair.Asset2, rPrice.Value.ticker.sell, rPrice.Value.ticker.buy, rPrice.Value.ticker.low, rPrice.Value.ticker.high), Volume = new NetworkPairVolume(Network, pair, rPrice.Value.ticker.vol) }); } } else { foreach (var pair in context.Pairs) { var lowerPairTicker = pair.ToTicker(this, "").ToLower(); var lpr = r.FirstOrDefault(x => x.Key.ToLower().Equals(lowerPairTicker)); if (lpr.Value == null) { prices.MissedPairs.Add(pair); continue; } prices.Add(new MarketPrice(Network, pair, lpr.Value.ticker.last) { PriceStatistics = new PriceStatistics(Network, pair.Asset2, lpr.Value.ticker.sell, lpr.Value.ticker.buy, lpr.Value.ticker.low, lpr.Value.ticker.high), Volume = new NetworkPairVolume(Network, pair, lpr.Value.ticker.vol) }); } } return(prices); }
public async Task <MarketPrices> GetPricesAsync(PublicPricesContext context) { var api = ApiProvider.GetApi(context); var rRaw = await api.GetAllTickersAsync().ConfigureAwait(false); var r = rRaw.GetContent(); var prices = new MarketPrices(); if (context.IsRequestAll) { var knownPairs = new AssetPairs(); foreach (var ticker in r.OrderBy(x => x.symbol.Length)) { var pairCodes = AssetsUtilities.GetAssetPair(ticker.symbol, knownPairs); if (!pairCodes.HasValue || !ticker.last.HasValue) { continue; } var pair = new AssetPair(pairCodes.Value.AssetCode1, pairCodes.Value.AssetCode2, this); knownPairs.Add(pair); prices.Add(new MarketPrice(Network, pair, ticker.last.Value) { PriceStatistics = new PriceStatistics(Network, pair.Asset2, ticker.ask, ticker.bid, ticker.low, ticker.high), Volume = new NetworkPairVolume(Network, pair, ticker.volume, ticker.volumeQuote) }); } } else { foreach (var pair in context.Pairs) { var pairCode = pair.ToTicker(this); var ticker = r.FirstOrDefault(x => x.symbol.Equals(pairCode, StringComparison.OrdinalIgnoreCase)); if (ticker?.last == null) { prices.MissedPairs.Add(pair); continue; } prices.Add(new MarketPrice(Network, pair, ticker.last.Value) { PriceStatistics = new PriceStatistics(Network, pair.Asset2, ticker.ask, ticker.bid, ticker.low, ticker.high), Volume = new NetworkPairVolume(Network, pair, ticker.volume, ticker.volumeQuote) }); } } return(prices); }
public async Task <MarketPrices> GetPricesAsync(PublicPricesContext context) { var api = ApiProvider.GetApi(context); var rRaw = await api.GetSymbolPriceTickerAsync().ConfigureAwait(false); CheckResponseErrors(rRaw); var r = rRaw.GetContent(); var prices = new MarketPrices(); var knownPairs = new AssetPairs(); if (context.IsRequestAll) { foreach (var rPrice in r.OrderBy(x => x.symbol.Length)) { var tPair = AssetsUtilities.GetAssetPair(rPrice.symbol, knownPairs); if (!tPair.HasValue) { continue; } var pair = new AssetPair(tPair.Value.AssetCode1, tPair.Value.AssetCode2, this); knownPairs.Add(pair); prices.Add(new MarketPrice(Network, pair, rPrice.price)); } } else { foreach (var pair in context.Pairs) { var lowerPairTicker = pair.ToTicker(this).ToLower(); var lpr = r.FirstOrDefault(x => x.symbol.ToLower().Equals(lowerPairTicker)); if (lpr == null) { prices.MissedPairs.Add(pair); continue; } prices.Add(new MarketPrice(Network, pair, lpr.price)); } } return(prices); }
public async Task <AssetPairs> GetAssetPairsAsync(NetworkProviderContext context) { var api = ApiProvider.GetApi(context); var r = await api.GetTickersAsync().ConfigureAwait(false); var assetPairs = new AssetPairs(); foreach (var rPrice in r.OrderBy(x => x.Key.Length)) { var pair = AssetsUtilities.GetAssetPair(rPrice.Key, assetPairs); if (!pair.HasValue) { continue; } assetPairs.Add(new AssetPair(pair.Value.AssetCode1, pair.Value.AssetCode2, this)); } return(assetPairs); }