internal IEnumerable <Change> Diff() { List <Change> changes = new List <Change>(); //TODO: /* * if old_field.description != new_field.description * changes << Changes::FieldDescriptionChanged.new(new_type, old_field, new_field) * end*/ if (oldField.DeprecationReason != newField.DeprecationReason) { changes.Add(new FieldDeprecationChanged(newType, oldField, newField)); } if (oldField.ResolvedType.Name != newField.ResolvedType.Name) { changes.Add(new FieldTypeChanged(oldType, oldField, newField)); } changes.AddRange(DiffTools.RemovedElements(oldArguments, newArguments, a => new FieldArgumentRemoved(newType, oldField, a))); changes.AddRange(DiffTools.AddedElements(oldArguments, newArguments, a => new FieldArgumentAdded(newType, newField, a))); foreach (var newArg in this.newArguments) { QueryArgument oldArg = oldArguments.SingleOrDefault(t => t.Name.Equals(newArg.Name)); if (oldArg != null) { changes.AddRange(new Diff.Argument(newType, newField, oldArg, newArg).Diff()); } } return(changes); }
internal IEnumerable <Change> Diff() { List <Change> changes = new List <Change>(); changes.AddRange(DiffTools.RemovedElements(oldFields, newFields, delegate(IFieldType t) { return(new InputFieldRemoved(this.oldType, t)); })); changes.AddRange(DiffTools.AddedElements(oldFields, newFields, delegate(IFieldType t) { return(new InputFieldAdded(this.newType, t)); })); foreach (var newField in this.newFields) { var oldField = this.oldFields.Where(t => t.Name.Equals(newField.Name)).SingleOrDefault(); if (oldField != null) { changes.AddRange(new Diff.InputField(oldType, newType, oldField, newField).Diff()); } } return(changes); }
internal List <Change> Diff() { List <Change> changes = new List <Change>(); //TODO struggling with the types here //changes.AddRange(InterfaceAdditions()); //changes.AddRange(InterfaceRemovals()); changes.AddRange(DiffTools.RemovedElements(oldfields, newfields, delegate(IFieldType t) { return(new FieldRemoved(oldType, t)); })); changes.AddRange(DiffTools.AddedElements(oldfields, newfields, delegate(IFieldType t) { return(new FieldAdded(newType, t)); })); foreach (var newField in this.newfields) { var oldField = this.oldfields.Where(t => t.Name.Equals(newField.Name)).SingleOrDefault(); if (oldField != null) { changes.AddRange(new Diff.Field(oldType, newType, oldField, newField).Diff()); } } return(changes); }