public ElasticsearchSimpleClient(IElasticsearchWidget elasticsearchWidget)
        {
            httpClients = new List <HttpClient>(elasticsearchWidget.NodeUris.Count());
            foreach (var uri in elasticsearchWidget.NodeUris)
            {
                var httpClient = new HttpClient {
                    BaseAddress = new Uri(uri)
                };
                if (elasticsearchWidget.UseBasicAuthentication &&
                    !string.IsNullOrWhiteSpace(elasticsearchWidget.Username) &&
                    !string.IsNullOrWhiteSpace(elasticsearchWidget.Password))
                {
                    var authenticationHeaderBytes = Encoding.UTF8.GetBytes($"{elasticsearchWidget.Username}:{elasticsearchWidget.Password}");
                    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(authenticationHeaderBytes));
                }

                httpClients.Add(httpClient);
            }

            if (elasticsearchWidget.TrustCertificate)
            {
                ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidation;
            }
        }
        public virtual ElasticsearchSimpleClient GetElasticClient(IElasticsearchWidget elasticsearchWidget)
        {
            var client = new ElasticsearchSimpleClient(elasticsearchWidget);

            return(client);
        }