예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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));
            }
        }