public ConstructorDiff(IConstructorData oldField, IConstructorData newField) { AddedAttributes = new List<IAttributeData>(); RemovedAttributes = new List<IAttributeData>(); if (oldField.ConstructorSignature != newField.ConstructorSignature) { throw new NtegrityException("Attempted to diff two different Enums!"); } ConstructorSignature = oldField.ConstructorSignature; GetAddedAndRemovedAttributes(oldField, newField); }
private void GetAddedAndRemovedAttributes(IConstructorData beforeField, IConstructorData afterField) { foreach (var oldAttribute in beforeField.AttributeData) { if (afterField.AttributeData.All(x => x.Name != oldAttribute.Name)) { RemovedAttributes.Add(oldAttribute); HasChanged = true; } } foreach (var newAttribute in afterField.AttributeData) { if (beforeField.AttributeData.All(x => x.Name != newAttribute.Name)) { AddedAttributes.Add(newAttribute); HasChanged = true; } } }