Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }