/// <summary>
        /// Connects a new receive endpoint to the host, and creates a <see cref="IClientFactory" />.
        /// </summary>
        /// <param name="connector">The host to connect the new receive endpoint</param>
        /// <param name="timeout">The default request timeout</param>
        /// <returns></returns>
        public static Task <IClientFactory> ConnectClientFactory(this IReceiveConnector connector, RequestTimeout timeout = default)
        {
            var endpointDefinition = new TemporaryEndpointDefinition();

            var receiveEndpointHandle = connector.ConnectReceiveEndpoint(endpointDefinition, KebabCaseEndpointNameFormatter.Instance);

            return(receiveEndpointHandle.CreateClientFactory(timeout));
        }
 /// <summary>
 /// Connect an endpoint for the host
 /// </summary>
 /// <param name="connector">The host to connect</param>
 /// <param name="configureEndpoint">The configuration callback</param>
 public static HostReceiveEndpointHandle ConnectReceiveEndpoint(this IReceiveConnector connector, Action <IReceiveEndpointConfigurator>
                                                                configureEndpoint = null)
 {
     return(connector.ConnectReceiveEndpoint(new TemporaryEndpointDefinition(), null, configureEndpoint));
 }
 /// <summary>
 /// Connect a response endpoint for the host
 /// </summary>
 /// <param name="connector">The host to connect</param>
 /// <param name="endpointNameFormatter"></param>
 /// <param name="configureEndpoint">The configuration callback</param>
 public static HostReceiveEndpointHandle ConnectResponseEndpoint(this IReceiveConnector connector, IEndpointNameFormatter endpointNameFormatter = null,
                                                                 Action <IReceiveEndpointConfigurator> configureEndpoint = null)
 {
     return(connector.ConnectReceiveEndpoint(new ResponseEndpointDefinition(), endpointNameFormatter, configureEndpoint));
 }