Arango.Client.AIndex.Create C# (CSharp) Метод

Create() публичный Метод

Creates index within specified collection in current database context.
public Create ( string collectionName ) : object>>.AResult
collectionName string
Результат object>>.AResult
        public AResult<Dictionary<string, object>> Create(string collectionName)
        {
            var request = new Request(HttpMethod.POST, ApiBaseUri.Index, "");
            var bodyDocument = new Dictionary<string, object>();
            
            // required
            request.QueryString.Add(ParameterName.Collection, collectionName);
            
            // required
            bodyDocument.String(ParameterName.Type, _parameters.String(ParameterName.Type));
            
            switch (_parameters.Enum<AIndexType>(ParameterName.Type))
            {
                case AIndexType.Fulltext:
                    Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument);
                    Request.TrySetBodyParameter(ParameterName.MinLength, _parameters, bodyDocument);
                    break;
                case AIndexType.Geo:
                    Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument);
                    Request.TrySetBodyParameter(ParameterName.GeoJson, _parameters, bodyDocument);
                    break;
                case AIndexType.Hash:
                    Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument);
                    Request.TrySetBodyParameter(ParameterName.Sparse, _parameters, bodyDocument);
                    Request.TrySetBodyParameter(ParameterName.Unique, _parameters, bodyDocument);
                    break;
                case AIndexType.Skiplist:
                    Request.TrySetBodyParameter(ParameterName.Fields, _parameters, bodyDocument);
                    Request.TrySetBodyParameter(ParameterName.Sparse, _parameters, bodyDocument);
                    Request.TrySetBodyParameter(ParameterName.Unique, _parameters, bodyDocument);
                    break;
                default:
                    break;
            }
            
            request.Body = JSON.ToJSON(bodyDocument, ASettings.JsonParameters);
            
            var response = _connection.Send(request);
            var result = new AResult<Dictionary<string, object>>(response);
            
            switch (response.StatusCode)
            {
                case 200:
                case 201:
                    var body = response.ParseBody<Dictionary<string, object>>();
                    
                    result.Success = (body != null);
                    result.Value = body;
                    break;
                case 400:
                case 404:
                default:
                    // Arango error
                    break;
            }
            
            _parameters.Clear();
            
            return result;
        }