internal void ParseConnectionString()

in src/Aspire.Elastic.Clients.Elasticsearch/ElasticClientsElasticsearchSettings.cs [54:82]


    internal void ParseConnectionString(string? connectionString)
    {
        if (Uri.TryCreate(connectionString, UriKind.Absolute, out var uri))
        {
            Endpoint = uri;
        }
        else
        {
            var connectionBuilder = new DbConnectionStringBuilder
            {
                ConnectionString = connectionString
            };

            if (connectionBuilder.ContainsKey(ConnectionStringEndpoint) && Uri.TryCreate(connectionBuilder[ConnectionStringEndpoint].ToString(), UriKind.Absolute, out var serviceUri))
            {
                Endpoint = serviceUri;
            }

            if (connectionBuilder.ContainsKey(ConnectionStringApiKey))
            {
                ApiKey = connectionBuilder[ConnectionStringApiKey].ToString();
            }

            if (connectionBuilder.ContainsKey(ConnectionStringCloudId))
            {
                CloudId = connectionBuilder[ConnectionStringCloudId].ToString();
            }
        }
    }