public IResponse Execute()
        {
            // create client connection
            var node = new Uri(ServerUrl);
            var conn = new ConnectionSettings(node, this.IndexName);
            var client = new ElasticClient(conn);

            // check index name existance
            var existenceResult = client.GetIndex(i => i.Index(IndexName));
            if (existenceResult.ConnectionStatus.Success)
            {
                // delete exist index
                var deleteResult = client.DeleteIndex(i => i.Index(IndexName));
                if (!deleteResult.Acknowledged)
                    return deleteResult;
            }

            // create index
            var createResult = client.CreateIndex(i => i.Index(IndexName));
            if (!createResult.Acknowledged)
                return createResult;

            // set analyzer
            SetAnalyzers(client);

            // put mapping
            var putResult = client.Map<TranslationMemory>(m => m.Index(this.IndexName).MapFromAttributes());
            //var putResult = client.Map<ElasticSearchProject>(m => m.Index(this.IndexName));
            return putResult;
        }
		public void MaxRetryExceptionInnerExceptionIsNull()
		{
			var nodes = new Uri[]
			{
				new Uri("http://invalid_host:9300"),
				new Uri("http://invalid_host:9400"),
				new Uri("http://invalid_host:9500")
			};
			var connectionPool = new StaticConnectionPool(nodes);
			var settings = new ConnectionSettings(connectionPool)
				.DisablePing();
			var client = new ElasticClient(settings);

			var maxRetryException = Assert.Throws<MaxRetryException>(() => client.GetIndex(g => g.Index("foo")));
			maxRetryException.InnerException.Should().NotBeNull();
			
			var aggregateException = maxRetryException.InnerException as AggregateException;
			aggregateException.Should().NotBeNull();
			aggregateException.InnerExceptions.Count.Should().Be(nodes.Count());
		}