protected override void OnCompleteType( ITypeCompletionContext context, SchemaTypeDefinition definition) { base.OnCompleteType(context, definition); Directives = DirectiveCollection.CreateAndComplete(context, this, definition.GetDirectives()); Services = context.Services; }
/// <summary> /// Process schema operations /// </summary> /// <param name="node"></param> /// <param name="elementDef"></param> private void processOperation(TreeNode node, SchemaTypeDefinition elementDef) { foreach (SchemaElementDefinition def in elementDef.ElementDefinitions) { // add node TreeNode nextChild = node.Nodes.Add(def.Name.ToString(), def.Name.ToString() + " (" + def.TypeDefinition.Datatype.ToString() + ")"); // store node element definition nextChild.Tag = def; // check if definition had child definitions if (def.TypeDefinition.NumElementDefinitions > 0) { // process child definition processOperation(nextChild, def.TypeDefinition); } } }
protected override void OnRegisterDependencies( ITypeDiscoveryContext context, SchemaTypeDefinition definition) { base.OnRegisterDependencies(context, definition); if (definition.HasDirectives) { foreach (DirectiveDefinition directive in definition.Directives) { context.Dependencies.Add(new( directive.TypeReference, TypeDependencyKind.Completed)); } } context.RegisterDependencyRange( definition.GetDirectives().Select(t => t.Reference)); }