private void Handler(ITransactionalMessage message)
        {
            _logger.Debug("Handler called {QueueName} {@Message}", _queueName, message?.Message);

            try
            {
                _messageHandler(message.Message, _cancellationTokenSource.Token);

                message.Ack();
            }
            catch (Exception exception)
            {
                ErrorHandler(message, exception);
            }
        }
        private void ErrorHandler(ITransactionalMessage message, Exception exception)
        {
            _logger.Debug(exception, "Error Handler called {QueueName} {@Message}", _queueName, message?.Message);

            try
            {
                if (CallErrorHandler(message.Message, exception))
                {
                    message.Ack();
                }
                else
                {
                    message.NAck();
                }
            }
            catch (Exception ex)
            {
                _logger.Information(ex, "Exception in Error Handler {QueueName} {@Message} {@Exception}", _queueName, message, exception);

                message?.NAck();
            }
        }