private async Task ProcessMessageAsync(LimitOrders arg)
        {
            try
            {
                var start = DateTime.UtcNow;

                var trades = await _tradesConverter.ConvertAsync(arg);

                if (trades == null || trades.Count == 0)
                {
                    return;
                }

                await _tradesPublisher.PublishAsync(trades);

                if (DateTime.UtcNow.Subtract(start) > TimeSpan.FromSeconds(10))
                {
                    await _log.WriteWarningAsync(
                        nameof(LimitOrdersSubscriberForPublishing),
                        nameof(ProcessMessageAsync),
                        $"Long processing: {arg.ToJson()}");
                }
            }
            catch (Exception ex)
            {
                await _log.WriteErrorAsync(nameof(LimitOrdersSubscriberForPublishing), nameof(ProcessMessageAsync), ex);

                throw;
            }
        }
        private async Task ProcessMessageAsync(LimitOrders limitOrders)
        {
            try
            {
                if (limitOrders.Orders == null || limitOrders.Orders.Count == 0)
                {
                    return;
                }

                string walletId = _settingsService.GetWalletId();

                if (string.IsNullOrEmpty(walletId))
                {
                    return;
                }

                if (limitOrders.Orders.Any(o => o.Order?.ClientId == walletId))
                {
                    _log.Info("Message received", context: $"data: {limitOrders.ToJson()}");
                }

                List <LimitOrderWithTrades> clientLimitOrders = limitOrders.Orders
                                                                .Where(o => o.Order?.ClientId == walletId)
                                                                .Where(o => o.Trades?.Count > 0)
                                                                .ToList();

                if (!clientLimitOrders.Any())
                {
                    return;
                }

                _log.Info("LimitOrders received", context: $"{clientLimitOrders.ToJson()}");


                IReadOnlyCollection <Trade> trades = ExtractTrades(clientLimitOrders);

                if (trades.Any())
                {
                    await _lykkeTradeService.HandleAsync(trades);
                }
            }
            catch (Exception exception)
            {
                _log.Error(exception, "An error occurred during processing trades", limitOrders);
            }
        }