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); } }