Exemplo n.º 1
0
        public Network NetworkConfirmedPricing(AssetPair pair)
        {
            var     provs = Providers.OfList <IPublicPricingProvider>().OrderByVolume(pair).Where(x => x.IsDirect);
            var     ctx   = new PublicPriceContext(pair);
            Network net   = null;

            foreach (var i in provs)
            {
                lock (_confirmedLock)
                    if (_confirmed.Any(x => x.Item1 == i && Equals(x.Item2, pair)))
                    {
                        net = i.Network;
                        break;
                    }

                if (ApiCoordinator.GetPricing(i, ctx).IsNull)
                {
                    continue;
                }

                net = i.Network;

                lock (_confirmedLock)
                    _confirmed.Add(new Tuple <IPublicPricingProvider, AssetPair>(i, pair));
                break;
            }

            return(net);
        }
Exemplo n.º 2
0
        private static MarketPricesData GrabPriceDataAndSave(KeyValuePair <Network, IReadOnlyList <AssetPair> > kv)
        {
            Console.WriteLine($"Getting price data for {kv.Key.Name} from {kv.Value.Count} pairs.");

            var prov = kv.Key.PublicPriceProviders.FirstDirectProvider <IPublicPricingProvider>();

            if (prov == null)
            {
                Console.WriteLine($"No provider found for {kv.Key.Name}");
                return(null);
            }
            var r = ApiCoordinator.GetPricing(prov, new PublicPricesContext(kv.Value.ToList()));

            if (r.IsNull)
            {
                Console.WriteLine($"No prices found for {kv.Key.Name}");
                return(null);
            }

            var data = new MarketPricesData(kv.Key, r.Response.MarketPrices);

            data.SavePublic();
            return(data);
        }