Exemple #1
0
        public async Task <IActionResult> Post([FromBody] GraphqlQueryParameter query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var executionOptions = new ExecutionOptions
            {
                Schema             = _schema,
                Query              = query.Query,
                Inputs             = query.Variables?.ToInputs(),       //TODO: Jsondaki variable kısmının tanımlanması için
                FieldNameConverter = new PascalCaseFieldNameConverter() //TODO: Graphql sorgularının pascal case olarak yazılması için gerekli.
            };

            try
            {
                var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false);

                if (result.Errors?.Count > 0)
                {
                    return(BadRequest(result));
                }

                return(Ok(result.Data));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
Exemple #2
0
        public async Task <IActionResult> Post([FromBody] GraphqlQueryParameter query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var executionOptions = new ExecutionOptions
            {
                Schema = SchemaManager.GetBrandSchema(_schema), // We choose the Schema we will use. Queries can only access Fields in the selected schema.
                Query  = query.Query,                           // Select Query
                Inputs = query.Variables?.ToInputs(),           // Query Paramaters
            };

            try
            {
                var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false);

                if (result.Errors?.Count > 0)
                {
                    return(BadRequest(result));
                }

                return(Ok(result.Data));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
Exemple #3
0
        public async Task <IActionResult> Post([FromBody] GraphqlQueryParameter query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var executionOptions = new ExecutionOptions
            {
                Schema             = _schema,
                Query              = query.Query,
                Inputs             = query.Variables?.ToInputs(),
                FieldNameConverter = new PascalCaseFieldNameConverter()
            };

            try
            {
                var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false);

                if (result.Errors?.Count > 0)
                {
                    return(BadRequest(result));
                }

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
        public async Task <IActionResult> Post([FromBody] GraphqlQueryParameter query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            var executionOptions = new ExecutionOptions()
            {
                Schema             = _schema,
                Query              = query.Query,
                Inputs             = query.Variables?.ToInputs(),        //Jsondaki variable kısmının tanımlanması için
                FieldNameConverter = new PascalCaseFieldNameConverter(), //Graphql sorgularının pascal case olarak yazılması için
                ValidationRules    = new List <IValidationRule> {
                    _validationRule
                },
                UserContext = _httpContextAccessor.HttpContext.User
            };

            try
            {
                var result = await _documentExecuter.ExecuteAsync(executionOptions).ConfigureAwait(false);

                if (result.Errors?.Count > 0)
                {
                    return(BadRequest(result));
                }

                return(Ok(result.Data));
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }