public async Task <IActionResult> PostAsync([FromBody] GraphQLQueryDTO queryDTO)
        {
            if (queryDTO == null)
            {
                throw new ArgumentNullException(nameof(queryDTO));
            }

            var inputs = queryDTO.variables.ToInputs();

            var executionOptions = new ExecutionOptions
            {
                Schema = schema,
                Query  = queryDTO.Query,
                Inputs = inputs
            };

            var results = await this.documentExecuter.ExecuteAsync(executionOptions);

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

            return(Ok(results));
        }
        public async Task <IActionResult> Post([FromBody] GraphQLQueryDTO query)
        {
            var result = await _executer.ExecuteAsync(_ =>
            {
                _.Schema = _schema;
                _.Query  = query.Query;
                _.Inputs = query.Variables?.ToInputs();
            });

            if (result.Errors?.Count > 0)
            {
                return(BadRequest());
            }
            return(Ok(result.Data));
        }
        public async Task <IActionResult> Post([FromBody] GraphQLQueryDTO query)
        {
            var result = await _executer.ExecuteAsync(_ =>
            {
                _.Schema = _schema;
                _.Query  = query.Query;
            }).ConfigureAwait(false);

            if (result.Errors?.Count > 0)
            {
                return(Problem(detail: result.Errors.Select(_ => _.Message).FirstOrDefault(), statusCode: 500));
            }

            return(Ok(result.Data));
        }
        public async Task <IActionResult> Post([FromBody] GraphQLQueryDTO query)
        {
            var schema = _schema;

            var result = await new DocumentExecuter().ExecuteAsync(_ =>
            {
                _.Schema        = schema;
                _.Query         = query.Query;
                _.OperationName = query.OperationName;
                _.Inputs        = (Inputs)query.Variables;;
            }).ConfigureAwait(false);

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

            return(Ok(result));
        }
        public async Task <IActionResult> Post([FromBody] GraphQLQueryDTO query)
        {
            var result = await _executer.ExecuteAsync(_ =>
            {
                _.Schema = _schema;
                _.Query  = query.Query;
                _.Inputs = query.Variables.ToInputs();
            });

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

            return(Ok(result.Data));

            //query {
            //    author(id: 1){
            //        id
            //        firstName
            //        lastName
            //   }
            //    blogs
            //     {
            //        id
            //        title
            //        content
            //    }
            //}

            //query {
            //    authors{
            //        id
            //        firstName
            //      lastName
            //    }
            //}
        }