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(BadRequest());
            }
            return(Ok(result.Data));
        }
        public async Task <IActionResult> Post([FromBody] GraphQLQueryDto query)
        {
            var result = await new DocumentExecuter().ExecuteAsync(_ =>
            {
                _.Schema = _schema;
                _.Query  = query.Query;
                _.Inputs = query.Variables?.ToInputs();
            }).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 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;
                _.ValidationRules = new List <IValidationRule> {
                    _validationRule
                };
                _.UserContext = _httpContextAccessor.HttpContext.User;
            }).ConfigureAwait(false);

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