Esempio n. 1
0
        public override void GetProducts(Exchange exchange, List <string> eligibleSymbols)
        {
            var response = Get <JArray>(PublicUrl, "/return_ticket.php");
            var markets  = new BuilderFactory().CreateCollection <JToken, TickerDto>(response).Build();

            markets = markets.Where(m =>
                                    m.active &&
                                    eligibleSymbols.Contains(m.fromSymbol) &&
                                    eligibleSymbols.Contains(m.toSymbol) &&
                                    !SymbolConstants.FiatCurrency.Contains(m.fromSymbol) &&
                                    !SymbolConstants.FiatCurrency.Contains(m.toSymbol)).ToList();
            foreach (var market in markets)
            {
                var coin = exchange.Coins.FirstOrDefault(m => m.Symbol == market.fromSymbol);
                if (coin == null)
                {
                    coin = new Coin {
                        Symbol = market.fromSymbol
                    };
                    exchange.Coins.Add(coin);
                }
                coin.Coins.Add(new Coin {
                    Symbol = market.toSymbol
                });
            }
        }
 public void Monitor()
 {
     try
     {
         var eligibleSymbols = _exchange.Coins.Select(m => m.Symbol)
                               .Union(_exchange.Coins.SelectMany(m => m.Coins).Select(m => m.Symbol)).Distinct().ToList();
         var response = _apiService.Get <JArray>(_apiService.PublicUrl, "/return_ticket.php");
         var tickers  = new BuilderFactory().CreateCollection <JToken, TickerDto>(response).Build();
         tickers = tickers.Where(m =>
                                 m.active &&
                                 eligibleSymbols.Contains(m.fromSymbol) &&
                                 eligibleSymbols.Contains(m.toSymbol) &&
                                 !SymbolConstants.FiatCurrency.Contains(m.fromSymbol) &&
                                 !SymbolConstants.FiatCurrency.Contains(m.toSymbol)).ToList();
         foreach (var ticker in tickers)
         {
             var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(ticker).Build();
             _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.TrustDex, ticker.fromSymbol,
                                                                                            ticker.toSymbol, pricingItem);
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"TrustDex Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }