private static IServiceCollection AddMessageHandlerOrderingModel <TImplementation>(this IServiceCollection services, IEnumerable <string> routePatterns, string?exchange, int order)
            where TImplementation : class
        {
            var patterns = routePatterns.ToList();

            MessageHandlerOrderingModelExists <TImplementation>(services, patterns, exchange, order);
            var messageHandlerOrderingModel = new MessageHandlerOrderingModel(typeof(TImplementation), exchange, patterns, order);

            services.AddSingleton(messageHandlerOrderingModel);
            return(services);
        }
        static IServiceCollection AddMessageHandlerOrderingModel <TImplementation>(this IServiceCollection services, IEnumerable <string> routePatterns, string exchange, int order)
            where TImplementation : class
        {
            MessageHandlerOrderingModelExists <TImplementation>(services, routePatterns, exchange, order);
            var messageHandlerOrderingModel = new MessageHandlerOrderingModel
            {
                Exchange           = exchange,
                RoutePatterns      = routePatterns,
                Order              = order,
                MessageHandlerType = typeof(TImplementation)
            };

            services.AddSingleton(messageHandlerOrderingModel);
            return(services);
        }