private void BuildEvents_OnBuildProjectBegin(object sender, BuildProjectEventArgs e) { try { ProjectItem currentProject = e.ProjectItem; currentProject.State = e.ProjectState; currentProject.BuildFinishTime = null; currentProject.BuildStartTime = e.EventTime; _viewModel.OnBuildProjectBegin(); if (_buildContext.BuildScope == BuildScopes.BuildScopeSolution && (_buildContext.BuildAction == BuildActions.BuildActionBuild || _buildContext.BuildAction == BuildActions.BuildActionRebuildAll)) { currentProject.BuildOrder = _viewModel.BuildProgressViewModel.CurrentQueuePosOfBuildingProject; } if (!_viewModel.ProjectsList.Contains(currentProject)) { _viewModel.ProjectsList.Add(currentProject); } _viewModel.CurrentProject = currentProject; } catch (Exception ex) { ex.TraceUnknownException(); } }
private void BuildEvents_OnBuildProjectDone(object sender, BuildProjectEventArgs e) { if (e.ProjectState == ProjectState.BuildError && _viewModel.ControlSettings.GeneralSettings.StopBuildAfterFirstError) { _buildDistributor.CancelBuild(); } try { ProjectItem currentProject = e.ProjectItem; currentProject.State = e.ProjectState; currentProject.BuildFinishTime = DateTime.Now; currentProject.UpdatePostBuildProperties(e.BuildedProjectInfo); if (!_viewModel.ProjectsList.Contains(currentProject)) { _viewModel.ProjectsList.Add(currentProject); } var buildInfo = (IBuildInfo)sender; if (ReferenceEquals(_viewModel.CurrentProject, e.ProjectItem) && buildInfo.BuildingProjects.Any()) { _viewModel.CurrentProject = buildInfo.BuildingProjects.Last(); } } catch (Exception ex) { ex.TraceUnknownException(); } _viewModel.UpdateIndicators(_buildContext); try { _viewModel.OnBuildProjectDone(e.BuildedProjectInfo); } catch (Exception ex) { ex.TraceUnknownException(); } }