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)); }