private async Task ProcessMessageAsync(LykkeOrderBook message)
        {
            try
            {
                var limitOrders = message.LimitOrders
                                  .Select(o => new LimitOrder(o.Id, o.WalletId, o.Price, Math.Abs(o.Volume)))
                                  .Where(x => x.Price > 0 && x.Volume > 0) // Filter out negative and zero prices and volumes
                                  .ToList();

                IReadOnlyList <LimitOrder> bids = null;
                IReadOnlyList <LimitOrder> asks = null;

                if (message.IsBuy)
                {
                    bids = limitOrders;
                }
                else
                {
                    asks = limitOrders;
                }

                var lykkeOrderBook = new OrderBook(LykkeExchangeName, new AssetPair(message.AssetPairId), bids, asks, message.Timestamp);

                await Task.WhenAll(_lykkeOrderBookHandlers.Select(o => o.HandleAsync(lykkeOrderBook)));
            }
            catch (Exception exception)
            {
                _log.Error(exception, "An error occurred during processing lykke order book", message);
            }
        }
        private async Task ProcessMessageAsync(LykkeOrderBook message)
        {
            try
            {
                var limitOrders = message.LimitOrders
                                  .Select(o => new LimitOrder
                {
                    Id       = o.Id,
                    WalletId = o.ClientId,
                    Volume   = Math.Abs(o.Volume),
                    Price    = o.Price,
                    Type     = message.IsBuy ? LimitOrderType.Buy : LimitOrderType.Sell
                })
                                  .ToArray();

                if (message.IsBuy)
                {
                    await _orderBookService.UpdateBuyLimitOrdersAsync(message.AssetPairId, message.Timestamp,
                                                                      limitOrders);
                }
                else
                {
                    await _orderBookService.UpdateSellLimitOrdersAsync(message.AssetPairId, message.Timestamp,
                                                                       limitOrders);
                }
            }
            catch (Exception exception)
            {
                _log.Error(exception, "An error occurred during processing lykke order book", message);
            }
        }