Ejemplo n.º 1
0
        private static void AddVariables(
            IResolverContext context,
            NameString schemaName,
            IQueryRequestBuilder builder,
            DocumentNode query,
            IEnumerable <VariableValue> variableValues)
        {
            OperationDefinitionNode operation =
                query.Definitions.OfType <OperationDefinitionNode>().First();
            var usedVariables = new HashSet <string>(
                operation.VariableDefinitions.Select(t =>
                                                     t.Variable.Name.Value));

            foreach (VariableValue variableValue in variableValues)
            {
                if (usedVariables.Contains(variableValue.Name))
                {
                    object value = variableValue.Value;

                    if (context.Schema.TryGetType(
                            variableValue.Type.NamedType().Name.Value,
                            out InputObjectType inputType))
                    {
                        var wrapped = WrapType(inputType, variableValue.Type);
                        value = ObjectVariableRewriter.RewriteVariable(
                            schemaName, wrapped, value);
                    }

                    builder.AddVariableValue(variableValue.Name, value);
                }
            }
        }
        private static void AddVariables(
            IQueryRequestBuilder builder,
            DocumentNode query,
            IEnumerable <Delegation.VariableValue> variableValues)
        {
            OperationDefinitionNode operation =
                query.Definitions.OfType <OperationDefinitionNode>().First();

            var usedVariables = new HashSet <string>(
                operation.VariableDefinitions.Select(t =>
                                                     t.Variable.Name.Value));

            foreach (Delegation.VariableValue variableValue in variableValues)
            {
                if (usedVariables.Contains(variableValue.Name))
                {
                    builder.AddVariableValue(variableValue.Name, variableValue.Value);
                }
            }
        }