private async Task RegisterTradesAsync(string marketOrderId)
        {
            IReadOnlyList <ExternalLimitOrder> externalLimitOrders =
                await _externalLimitOrderService.GetByParentIdAsync(marketOrderId);

            IEnumerable <ExternalLimitOrder> activeExternalLimitOrders =
                externalLimitOrders.Where(o => o.Status == ExternalLimitOrderStatus.Active);

            foreach (ExternalLimitOrder externalLimitOrder in activeExternalLimitOrders)
            {
                try
                {
                    if (await _exchangeService.CancelLimitOrderAsync(externalLimitOrder))
                    {
                        await _externalLimitOrderService.UpdateAsync(externalLimitOrder);
                    }
                    else
                    {
                        _log.WarningWithDetails("External limit order not cancelled", externalLimitOrder);
                    }
                }
                catch (Exception exception)
                {
                    _log.ErrorWithDetails(exception, "An error occurred while processing external limit order",
                                          externalLimitOrder);
                }
            }
        }