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