/// <summary>
        /// Listen for incoming messages at the designated Rabbit MQ queue by name
        /// </summary>
        /// <param name="endpoints"></param>
        /// <param name="queueName">The name of the Rabbit MQ queue</param>
        /// <returns></returns>
        public static AzureServiceBusListenerConfiguration ListenToAzureServiceBusQueue(this IEndpoints endpoints, string queueName)
        {
            var endpoint = endpoints.AsbTransport().EndpointForQueue(queueName);

            endpoint.IsListener = true;
            return(new AzureServiceBusListenerConfiguration(endpoint));
        }
        /// <summary>
        /// Configure connection and authentication information about the Azure Service Bus usage
        /// within this Jasper application
        /// </summary>
        /// <param name="endpoints"></param>
        /// <param name="configure"></param>
        public static void ConfigureAzureServiceBus(this IEndpoints endpoints, Action <IAzureServiceBusTransport> configure)
        {
            var transport = endpoints.AsbTransport();

            endpoints.As <TransportCollection>().Subscribers.Fill(transport.Topics);
            configure(transport);
        }
        /// <summary>
        /// Listen for incoming messages at the designated Rabbit MQ queue by name
        /// </summary>
        /// <param name="endpoints"></param>
        /// <param name="queueName">The name of the Rabbit MQ queue</param>
        /// <returns></returns>
        public static AzureServiceBusListenerConfiguration ListenToAzureServiceBusTopic(this IEndpoints endpoints, string topicName, string subscriptionName)
        {
            var raw = new AzureServiceBusEndpoint {
                TopicName = topicName, SubscriptionName = subscriptionName
            }.Uri;
            var endpoint = endpoints.AsbTransport().GetOrCreateEndpoint(raw);

            endpoint.IsListener = true;
            return(new AzureServiceBusListenerConfiguration((AzureServiceBusEndpoint)endpoint));
        }