Example #1
0
        private static InputObjectTypeDefinitionNode AddInputFields(
            InputObjectTypeDefinitionNode typeDefinition,
            InputObjectTypeExtensionNode typeExtension)
        {
            if (typeExtension.Fields.Count == 0)
            {
                return(typeDefinition);
            }

            var fields =
                new OrderedDictionary <string, InputValueDefinitionNode>();

            foreach (InputValueDefinitionNode field in typeDefinition.Fields)
            {
                fields[field.Name.Value] = field;
            }

            foreach (InputValueDefinitionNode field in typeExtension.Fields)
            {
                // we allow an extension to override fields.
                fields[field.Name.Value] = field;
            }

            return(typeDefinition.WithFields(fields.Values.ToList()));
        }
        private InputObjectTypeDefinitionNode RemoveFields(
            InputObjectTypeDefinitionNode typeDefinition)
        {
            var renamedFields = new List <InputValueDefinitionNode>();

            foreach (InputValueDefinitionNode field in typeDefinition.Fields)
            {
                if (!Field.FieldName.Equals(field.Name.Value))
                {
                    renamedFields.Add(field);
                }
            }

            return(typeDefinition.WithFields(renamedFields));
        }
        private InputObjectTypeDefinitionNode RenameFields(
            InputObjectTypeDefinitionNode typeDefinition,
            NameString schemaName)
        {
            var renamedFields = new List <InputValueDefinitionNode>();

            foreach (InputValueDefinitionNode field in typeDefinition.Fields)
            {
                renamedFields.Add(
                    Field.FieldName.Equals(field.Name.Value)
                        ? field.Rename(NewFieldName, schemaName)
                        : field);
            }

            return(typeDefinition.WithFields(renamedFields));
        }