public static Broker GetBroker()
    {
        var connectionString = Environment.GetEnvironmentVariable("RabbitMQTransport_ConnectionString");

        if (string.IsNullOrEmpty(connectionString))
        {
            throw new Exception("The 'RabbitMQTransport_ConnectionString' environment variable is not set.");
        }

        var connectionStringBuilder = new DbConnectionStringBuilder {
            ConnectionString = connectionString
        };

        string hostName;

        if (connectionStringBuilder.TryGetValue("host", out var value))
        {
            hostName = value.ToString();
        }
        else
        {
            throw new Exception("The connection string doesn't contain a value for 'host'.");
        }

        return(new Broker
        {
            UserName = connectionStringBuilder.GetOrDefault("username", "guest"),
            Password = connectionStringBuilder.GetOrDefault("password", "guest"),
            VirtualHost = connectionStringBuilder.GetOrDefault("virtualhost", "/"),
            HostName = hostName,
            Port = 15672,
        });
    }