private dynamic ComposeResultForType(GraphQLObjectType type, GraphQLSelectionSet selectionSet) { var variableResolver = new VariableResolver(this.variables, this.graphQLSchema.TypeTranslator, this.operation.VariableDefinitions); var valueResolver = new ValueResolver(variableResolver, this.graphQLSchema.TypeTranslator); var fieldCollector = new FieldCollector(this.fragments, valueResolver); var scope = new FieldScope( this.graphQLSchema.TypeTranslator, valueResolver, fieldCollector, type, null); return(scope.GetObject(fieldCollector.CollectFields(type, selectionSet))); }
private ExecutionContext CreateExecutionContext(GraphQLOperationDefinition operationDefinition) { var variableResolver = this.CreateVariableResolver(); var fieldCollector = new FieldCollector( this.fragments, this.graphQLSchema.SchemaRepository); return(new ExecutionContext() { FieldCollector = fieldCollector, OperationType = operationDefinition.Operation, Schema = this.graphQLSchema, SchemaRepository = this.graphQLSchema.SchemaRepository, VariableResolver = variableResolver }); }