void ProjectAdded(object sender, DotNetProjectEventArgs e) { MonitoredSolution monitoredSolution = FindMonitoredSolution((ISolution)sender); e.Project.Modified += ProjectModified; monitoredSolution.Projects.Add(e.Project); }
void ProjectRemoved(object sender, DotNetProjectEventArgs e) { MonitoredSolution monitoredSolution = FindMonitoredSolution((ISolution)sender); IDotNetProject matchedProject = monitoredSolution.Projects.FirstOrDefault(project => project.Equals(e.Project)); if (matchedProject != null) { matchedProject.Modified -= ProjectModified; monitoredSolution.Projects.Remove(matchedProject); } }
void SolutionUnloaded(object sender, EventArgs e) { MonitoredSolution monitoredSolution = FindMonitoredSolution((DotNetSolutionEventArgs)e); if (monitoredSolution == null) { return; } foreach (IDotNetProject project in monitoredSolution.Projects) { project.Modified -= ProjectModified; } monitoredSolution.Projects.Clear(); monitoredSolution.Solution.ProjectAdded -= ProjectAdded; monitoredSolutions.Remove(monitoredSolution); }