private void DiffMethods(QueryAggregator diffQueries)
        {
            var methodsV1 = diffQueries.ExecuteAndAggregateMethodQueries(this.TypeV1);
            var methodsV2 = diffQueries.ExecuteAndAggregateMethodQueries(this.TypeV2);

            var differ = new ListDiffer <MethodDefinition>(this.CompareMethodByNameAndTypesIncludingGenericArguments);

            differ.Diff(methodsV1, methodsV2, added => { this.Methods.Add(new DiffResult <MethodDefinition>(added, new DiffOperation(true))); }, removed => { this.Methods.Add(new DiffResult <MethodDefinition>(removed, new DiffOperation(false))); });
        }
        private void DiffEvents(QueryAggregator diffQueries)
        {
            var eventsV1 = diffQueries.ExecuteAndAggregateEventQueries(this.TypeV1);
            var eventsV2 = diffQueries.ExecuteAndAggregateEventQueries(this.TypeV2);

            var differ = new ListDiffer <EventDefinition>(this.CompareEvents);

            differ.Diff(eventsV1, eventsV2, added => { this.Events.Add(new DiffResult <EventDefinition>(added, new DiffOperation(true))); }, removed => { this.Events.Add(new DiffResult <EventDefinition>(removed, new DiffOperation(false))); });
        }
        private void DiffFields(QueryAggregator diffQueries)
        {
            var fieldsV1 = diffQueries.ExecuteAndAggregateFieldQueries(this.TypeV1);
            var fieldsV2 = diffQueries.ExecuteAndAggregateFieldQueries(this.TypeV2);

            var fieldDiffer = new ListDiffer <FieldDefinition>(this.CompareFieldsByTypeAndName);

            fieldDiffer.Diff(fieldsV1, fieldsV2, addedField => { this.Fields.Add(new DiffResult <FieldDefinition>(addedField, new DiffOperation(true))); }, removedField => { this.Fields.Add(new DiffResult <FieldDefinition>(removedField, new DiffOperation(false))); });
        }
Example #4
0
        public AssemblyDiffCollection GenerateTypeDiff(QueryAggregator queries)
        {
            if (queries == null || queries.TypeQueries.Count == 0)
            {
                throw new ArgumentNullException("queries is null or contains no queries");
            }

            List <TypeDefinition> typesV1 = queries.ExeuteAndAggregateTypeQueries(myV1);
            List <TypeDefinition> typesV2 = queries.ExeuteAndAggregateTypeQueries(myV2);

            ListDiffer <TypeDefinition> differ = new ListDiffer <TypeDefinition>(ShallowTypeComapare);

            differ.Diff(typesV1, typesV2, OnAddedType, OnRemovedType);

            DiffTypes(typesV1, typesV2, queries);

            return(myDiff);
        }
        public AssemblyDiffCollection GenerateTypeDiff(QueryAggregator queries)
        {
            if (queries == null || queries.TypeQueries.Count == 0)
            {
                throw new ArgumentNullException("queries is null or contains no queries");
            }

            var typesV1 = queries.ExeuteAndAggregateTypeQueries(this.myV1);
            var typesV2 = queries.ExeuteAndAggregateTypeQueries(this.myV2);

            var differ = new ListDiffer<TypeDefinition>(this.ShallowTypeComapare);

            differ.Diff(typesV1, typesV2, this.OnAddedType, this.OnRemovedType);

            this.DiffTypes(typesV1, typesV2, queries);

            return this.myDiff;
        }