private static void CollectInputObjectTypes( IDocumentAnalyzerContext context) { var analyzer = new InputObjectTypeUsageAnalyzer(context.Schema); analyzer.Analyze(context.Document); foreach (INamedInputType namedInputType in analyzer.InputTypes) { if (namedInputType is InputObjectType inputObjectType) { RegisterInputObjectType(context, inputObjectType); } else if (namedInputType is ILeafType) { context.RegisterType(namedInputType); } } }
private static void CollectInputObjectTypes( IDocumentAnalyzerContext context) { var analyzer = new InputObjectTypeUsageAnalyzer(context.Schema); analyzer.Analyze(context.Document); foreach (InputObjectType inputObjectType in analyzer.InputObjectTypes) { RenameDirective?rename; var fields = new List <InputFieldModel>(); foreach (IInputField inputField in inputObjectType.Fields) { rename = inputField.Directives.SingleOrDefault <RenameDirective>(); fields.Add(new InputFieldModel( GetClassName(rename?.Name ?? inputField.Name), inputField.Description, inputField, inputField.Type)); } rename = inputObjectType.Directives.SingleOrDefault <RenameDirective>(); NameString typeName = context.ResolveTypeName( GetClassName(rename?.Name ?? inputObjectType.Name)); context.RegisterModel( typeName, new InputObjectTypeModel( GetClassName(rename?.Name ?? inputObjectType.Name), inputObjectType.Description, inputObjectType, fields)); } }
private static void CollectInputObjectTypes( IDocumentAnalyzerContext context, IEnumerable <DocumentNode> documents) { var analyzer = new InputObjectTypeUsageAnalyzer(context.Schema); foreach (DocumentNode document in documents) { analyzer.Analyze(document); } foreach (InputObjectType inputObjectType in analyzer.InputObjectTypes) { RenameDirective?rename; var fields = new List <InputFieldModel>(); foreach (IInputField inputField in inputObjectType.Fields) { rename = inputField.Directives.SingleOrDefault <RenameDirective>(); fields.Add(new InputFieldModel( GetClassName(rename?.Name ?? inputField.Name), inputField.Description, inputField, inputField.Type)); } rename = inputObjectType.Directives.SingleOrDefault <RenameDirective>(); context.Register(new ComplexInputTypeModel( GetClassName(rename?.Name ?? inputObjectType.Name), inputObjectType.Description, inputObjectType, fields)); } }