示例#1
0
        public void RemoveUnusedUnits()
        {
            SuggestedUnitStructureList vSuggestedStructures = IcarusAnalyzerReportParser.Parse(Model.IcarusReport);
            StringBuilder vLog = new StringBuilder();

            foreach (string vUnitFileName in Model.UnitsToClean)
            {
                if (vUnitFileName.Equals(""))
                {
                    continue;
                }

                string vUnitName = Path.GetFileNameWithoutExtension(vUnitFileName).ToLower();
                if (
                    !vSuggestedStructures.ContainsKey(vUnitName) ||
                    (vSuggestedStructures[vUnitName].MoveToInterface.Count == 0) &&
                    (vSuggestedStructures[vUnitName].ToDelete.Count == 0)
                    )
                {
                    continue;
                }

                vLog.Append("Processing unit " + vUnitName + "\r\n");
                DelphiUnitAgent vAgent = new DelphiUnitAgent(vUnitFileName);
                vAgent.CleanupUnits(vSuggestedStructures[vUnitName], Model.IgnoredUnits);
                if (vAgent.Modified)
                {
                    vLog.Append("Saving changes in unit " + vUnitName + "\r\n");
                    vAgent.Save(vUnitFileName);
                }
            }
            Model.IcarusReport = vLog.ToString();
            Model.NotifyObservers();
        }
        protected static void ParseMatch(string aUnitName, UsesListType aUsesListType, string aModuleReport, SuggestedUnitStructureList aLists)
        {
            if (!aLists.ContainsKey(aUnitName))
                aLists.Add(aUnitName, new SuggestedUnitStructure());

            SuggestedUnitStructure vList = aLists[aUnitName];
            ExtractUnitNames(aModuleReport, aUsesListType, vList);
        }