//private readonly IContainer container; //private readonly INodeTypeFactory factory; public NodeQuery(IContainer container, INodeTypeFactory factory) { //this.container = container; //this.factory = factory; var nodeResolver = new NodeResolver(container); foreach (var typeName in factory.RegisterdTypeNames()) { var type = factory.GetTypeByName(typeName); var ft = new FieldType() { Arguments = new QueryArguments( new QueryArgument <NonNullGraphType <StringGraphType> > { Name = "id", Description = "id of the node" } ), Resolver = nodeResolver, Name = typeName, Type = type, ResolvedType = new NodeGraphType(typeName, type) }; fields.Add(ft); } IsTypeOf = type => type is INode; }
private void RegisterNodeTypes() { var nodeResolver = new NodeResolver(container); foreach (var typeName in factory.RegisterdTypeNames()) { var type = factory.GetTypeByName(typeName); AddField(new FieldType() { Arguments = GetIdQuery(), Resolver = nodeResolver, Name = typeName, Type = type, ResolvedType = new NodeReflectionGraphType(typeName, type, container) }); } }