コード例 #1
0
        public ActionResponse Execute()
        {
            _context.Warn("Initializing");

            var version = ElasticVersionParser.ParseVersion(_context);

            var properties = new Dictionary <string, object> {
                { "properties", GetFields() }
            };
            var typeName = _context.Entity.Alias.ToLower();
            var body     = new Dictionary <string, object> {
                { typeName, properties }
            };
            var json = JsonConvert.SerializeObject(body);

            ElasticsearchResponse <DynamicResponse> elasticResponse;

            if (version.Major >= 7)
            {
                elasticResponse = _client.IndicesPutMapping <DynamicResponse>(_context.Connection.Index, typeName, json, qs => qs.AddQueryString("include_type_name", "true"));
            }
            else
            {
                elasticResponse = _client.IndicesPutMapping <DynamicResponse>(_context.Connection.Index, typeName, json);
            }

            var response = new ActionResponse(
                elasticResponse.HttpStatusCode ?? 500,
                elasticResponse.ServerError == null ? string.Empty : elasticResponse.ServerError.Error.Reason ?? string.Empty
                )
            {
                Action = new Configuration.Action()
                {
                    Type        = "internal",
                    ErrorMode   = "continue",
                    Description = $"Initialize {typeName} entity."
                }
            };

            return(response);
        }
コード例 #2
0
        public ActionResponse Execute()
        {
            _context.Warn("Initializing");

            var properties = new Dictionary <string, object> {
                { "properties", GetFields() }
            };
            var typeName = _context.Entity.Alias.ToLower();
            var body     = new Dictionary <string, object> {
                { typeName, properties }
            };
            var json = JsonConvert.SerializeObject(body);

            var elasticResponse = _client.IndicesPutMapping <DynamicResponse>(_context.Connection.Index, typeName, json);

            return(new ActionResponse {
                Code = elasticResponse.HttpStatusCode ?? 500,
                Message = elasticResponse.ServerError == null ? string.Empty : elasticResponse.ServerError.Error.Reason ?? string.Empty
            });
        }