public static void UseMessageData <T>(this IPipeConfigurator <ConsumeContext <T> > configurator, IMessageDataRepository repository,
                                              Action <ITransformConfigurator <T> > configure = null)
            where T : class
        {
            var transformSpecification = new GetMessageDataTransformSpecification <T>(repository);

            configure?.Invoke(transformSpecification);

            IPipeSpecification <ConsumeContext <T> > specification = transformSpecification;

            configurator.AddPipeSpecification(specification);
        }
        bool IMessageConsumeTopologyConvention <TMessage> .TryGetMessageConsumeTopology(out IMessageConsumeTopology <TMessage> messageConsumeTopology)
        {
            var specification = new GetMessageDataTransformSpecification <TMessage>(_repository);

            if (specification.TryGetConsumeTopology(out messageConsumeTopology))
            {
                return(true);
            }

            messageConsumeTopology = null;
            return(false);
        }