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