public static void DetectChangedClassPropertiesAndMethods(TypesToTrack workingType, StringBuilder added, StringBuilder removed)
        {
            var currentClasses  = workingType.CurrentPublicClasses.PublicClasses;
            var previousClasses = workingType.PreviousPublicClasses.PublicClasses;

            foreach (var c in currentClasses)
            {
                added.Append(DetectChangedClassesHelper(previousClasses, c, " was added"));
            }
            foreach (var p in previousClasses)
            {
                removed.Append(DetectChangedClassesHelper(currentClasses, p, " was removed"));
            }
        }
Exemple #2
0
        public static int InspectAll(Type type)
        {
            var added        = new StringBuilder();
            var removed      = new StringBuilder();
            var typesToTrack = new TypesToTrack
            {
                CurrentPublicClasses = new PublicSurfaceArea
                {
                    PublicInterfaces = InspectingTools.GetPublicInterfaces(type),
                    PublicClasses    = InspectingTools.GetPublicClasses(type)
                }
            };

            if (!File.Exists(BasePath))
            {
                InspectingTools.WriteToJsonFile(BasePath, typesToTrack);
                return(0);
            }

            var oldFile = InspectingTools.ReadFromJsonFile(BasePath);

            typesToTrack.PreviousPublicClasses = oldFile.CurrentPublicClasses;

            InspectingTools.DetectChangedInterfaceMethodsAndProperties(typesToTrack, added, removed);

            InspectingTools.DetectChangedClassPropertiesAndMethods(typesToTrack, added, removed);

            if (!string.IsNullOrWhiteSpace(added.ToString()))
            {
                Console.WriteLine(added);
            }

            if (!string.IsNullOrWhiteSpace(removed.ToString()))
            {
                Console.WriteLine(removed);
                Console.WriteLine("Changes to JSON file not made");
                return(1);
            }


            InspectingTools.WriteToJsonFile(BasePath, typesToTrack);
            return(0);
        }