Ejemplo n.º 1
0
        public EnumTypeDiff(IEnumTypeData beforeEnum, IEnumTypeData afterEnum)
        {
            AddedAttributes = new List<IAttributeData>();
            RemovedAttributes = new List<IAttributeData>();

            AddedFields = new List<IFieldData>();
            RemovedFields = new List<IFieldData>();
            ModifiedFields = new List<IFieldDiff>();

            AddedMethods = new List<IMethodData>();
            RemovedMethods = new List<IMethodData>();
            ModifiedMethods = new List<IMethodDiff>();

            if (beforeEnum.Name != afterEnum.Name)
            {
                throw new NtegrityException("Attempted to diff two different Enums!");
            }
            Name = beforeEnum.Name;

            GetAddedAndRemovedAttributes(beforeEnum, afterEnum);
            GetAddedAndRemovedFields(beforeEnum, afterEnum);
            GetAddedAndRemovedMethods(beforeEnum, afterEnum);
        }
Ejemplo n.º 2
0
 private void GetAddedAndRemovedMethods(IEnumTypeData beforeEnum, IEnumTypeData afterEnum)
 {
     foreach (var oldMethod in beforeEnum.MethodData)
     {
         if (afterEnum.MethodData.All(x => x.MethodSignature != oldMethod.MethodSignature))
         {
             RemovedMethods.Add(oldMethod);
             HasChanged = true;
         }
     }
     foreach (var newMethod in afterEnum.MethodData)
     {
         if (beforeEnum.MethodData.All(x => x.MethodSignature != newMethod.MethodSignature))
         {
             AddedMethods.Add(newMethod);
             HasChanged = true;
         }
     }
     foreach (var oldMethod in beforeEnum.MethodData)
     {
         var matchingNewField = afterEnum.MethodData.FirstOrDefault(
             x => x.MethodSignature == oldMethod.MethodSignature);
         if (matchingNewField != null)
         {
             var diff = new MethodDiff(oldMethod, matchingNewField);
             if (!diff.HasChanged)
             {
                 continue;
             }
             ModifiedMethods.Add(diff);
             HasChanged = true;
         }
     }
 }
Ejemplo n.º 3
0
 private void GetAddedAndRemovedAttributes(IEnumTypeData beforeEnum, IEnumTypeData afterEnum)
 {
     foreach (var oldAttribute in beforeEnum.AttributeData)
     {
         if (afterEnum.AttributeData.All(x => x.Name != oldAttribute.Name))
         {
             RemovedAttributes.Add(oldAttribute);
             HasChanged = true;
         }
     }
     foreach (var newAttribute in afterEnum.AttributeData)
     {
         if (beforeEnum.AttributeData.All(x => x.Name != newAttribute.Name))
         {
             AddedAttributes.Add(newAttribute);
             HasChanged = true;
         }
     }
 }