public LeOrderBook GetOrderBook(string symbol)
        {
            var data = _wsFtx.GetOrderBookById(symbol);

            if (data == null)
            {
                return(null);
            }

            var book = new LeOrderBook()
            {
                Symbol    = symbol,
                Timestamp = data.GetTime().UtcDateTime,
                Asks      = data.asks.Select(LeOrderBookLevel.Create).Where(e => e != null).ToList(),
                Bids      = data.bids.Select(LeOrderBookLevel.Create).Where(e => e != null).ToList(),
                Source    = FtxConst.Name
            };

            return(book);
        }
        private static void UseFtxWsOrderBooks(ILoggerFactory loggerFactory)
        {
            var client = new FtxWsOrderBooks(loggerFactory.CreateLogger <FtxWsOrderBooks>(), new [] { "BTC/USD" });

            client.Start();

            bool log = true;

            client.ReceiveUpdates = book =>
            {
                if (log)
                {
                    Console.WriteLine($"Receive updates for {book.id}");
                }

                log = false;

                return(Task.CompletedTask);
            };

            var cmd = Console.ReadLine();

            while (cmd != "exit")
            {
                if (cmd == "count")
                {
                    var books = client.GetOrderBooks().Count;
                    Console.WriteLine($"Count books: {books}");
                }
                else if (cmd == "reset")
                {
                    client.Reset("BTC/USD").Wait();
                }
                else if (cmd == "time")
                {
                    var book = client.GetOrderBookById("BTC/USD");

                    Console.WriteLine($"nw: {DateTimeOffset.UtcNow:O}");
                    Console.WriteLine($"t1: {book.GetTime():O}");



                    client.Reset("BTC/USD").Wait();
                }
                else
                {
                    var orderBook = client.GetOrderBookById(cmd);

                    if (orderBook != null)
                    {
                        Console.WriteLine($"{orderBook.id} {orderBook.GetTime():O}  {orderBook.asks.Count}|{orderBook.bids.Count}");
                    }
                    else
                    {
                        Console.WriteLine("Not found");
                    }
                }

                cmd = Console.ReadLine();
            }
        }