Example #1
0
        private async Task UpdateAfterDelay(ProjectId projectId)
        {
            await Task.Delay(ProjectChangeDelay);

            var solution         = _projectManager.Workspace.CurrentSolution;
            var workspaceProject = solution.GetProject(projectId);

            if (workspaceProject != null)
            {
                _projectManager.WorkspaceProjectChanged(workspaceProject);
            }
        }
Example #2
0
        // Internal for testing
        internal void Workspace_WorkspaceChanged(object sender, WorkspaceChangeEventArgs e)
        {
            Project project;

            switch (e.Kind)
            {
            case WorkspaceChangeKind.ProjectAdded:
            {
                project = e.NewSolution.GetProject(e.ProjectId);
                Debug.Assert(project != null);

                _projectManager.WorkspaceProjectAdded(project);
                break;
            }

            case WorkspaceChangeKind.ProjectChanged:
            case WorkspaceChangeKind.ProjectReloaded:
            {
                project = e.NewSolution.GetProject(e.ProjectId);
                Debug.Assert(project != null);

                _projectManager.WorkspaceProjectChanged(project);
                break;
            }

            case WorkspaceChangeKind.ProjectRemoved:
            {
                project = e.OldSolution.GetProject(e.ProjectId);
                Debug.Assert(project != null);

                _projectManager.WorkspaceProjectRemoved(project);
                break;
            }

            case WorkspaceChangeKind.SolutionAdded:
            case WorkspaceChangeKind.SolutionChanged:
            case WorkspaceChangeKind.SolutionCleared:
            case WorkspaceChangeKind.SolutionReloaded:
            case WorkspaceChangeKind.SolutionRemoved:

                if (e.OldSolution != null)
                {
                    foreach (var p in e.OldSolution.Projects)
                    {
                        _projectManager.WorkspaceProjectRemoved(p);
                    }
                }

                InitializeSolution(e.NewSolution);
                break;
            }
        }