private void OnBuildStatusChanged(BuildStatusChangedEventArgs e) { if (e.Args.Changed) { foreach (IQueuedBuild build in e.Queue.QueuedBuilds) { string message = string.Format("Team build '{0}' requested by '{1}' was promoted to its status '{2}'...", build.BuildDefinition.Name, build.RequestedBy, build.Status); UIContext.Instance.ShowTrayTooltip("Team build status change", message, ToolTipIcon.Info, new TeamBuildStatusChangeHandler(build)); } } }
private void OnBuildFacadeBuildStatusLoaded(object sender, BuildStatusChangedEventArgs e) { var crashedBuilds = new List <BuildCrashInfo>(); foreach (var build in e.BuildDefinitions) { var buildDefinitionVm = SearchBuildById(Items, build.Id); if (buildDefinitionVm != null) { buildDefinitionVm.Model = build.Clone(); if (build.LastRun != null) { buildDefinitionVm.BuildStatus = build.LastRun.BuildStatus; } var buildLastRun = build.LastRun; if (buildLastRun != null) { if ((buildLastRun.BuildStatus == BuildStatusType.Failed) && CurrentBuildFacade.CurrentUser.Equals(buildLastRun.CommittedBy)) { var crashedBuildInfo = new BuildCrashInfo() { User = CurrentBuildFacade.CurrentUser, BuildDefinition = buildDefinitionVm, BuildRun = buildLastRun, }; crashedBuilds.Add(crashedBuildInfo); } } } } if (crashedBuilds.Count > 0) { BuildCrashedDialog.ShowDialog(crashedBuilds.ToArray()); } }