Ejemplo n.º 1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            while (!stoppingToken.IsCancellationRequested)
            {
                if (OrderBookHub.Connections.Count > 0)
                {
                    try
                    {
                        var orderBook = await _cryptoProvider.GetOrderBook(_config.Ticker, _config.PriceRangeLimitPercantage);

                        orderBook.Ticker = _config.Ticker;

                        if (_config.LogDb)
                        {
                            StoreOrderBook(orderBook);
                        }

                        var orderBookBroadcast = new OrderBookBroadcast(orderBook);
                        await _orderBookHub.Clients.All.BroadcastOrderBook(orderBookBroadcast);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error in CryptoProviderBackgroundService.ExecuteAsync:" + ex.ToString());
                    }
                }
                else
                {
                    Console.WriteLine("There are no clients connected.");
                }

                await Task.Delay(_config.IntervalInMs);
            }
        }