protected virtual Task AckMessageIfApplicable(IPipeContext context)
        {
            var autoAck = context.GetConsumeConfiguration()?.AutoAck;

            if (!autoAck.HasValue)
            {
                _logger.Debug("Unable to ack original message. Can not determine if AutoAck is configured.");
                return(Task.FromResult(0));
            }
            if (autoAck.Value)
            {
                _logger.Debug("Consuming in AutoAck mode. No ack'ing will be performed");
                return(Task.FromResult(0));
            }
            var deliveryTag = context.GetDeliveryEventArgs()?.DeliveryTag;

            if (deliveryTag == null)
            {
                _logger.Info("Unable to ack original message. Delivery tag not found.");
                return(Task.FromResult(0));
            }
            var consumerChannel = context.GetConsumer()?.Model;

            if (consumerChannel != null && consumerChannel.IsOpen && deliveryTag.HasValue)
            {
                _logger.Debug("Acking message with {deliveryTag} on channel {channelNumber}", deliveryTag, consumerChannel.ChannelNumber);
                consumerChannel.BasicAck(deliveryTag.Value, false);
            }
            return(Task.FromResult(0));
        }