private void ShowBuilds() { while (true) { try { ClearItems(); ImageIndex overallImageIndex = ImageIndex.Green; string culprit = ""; foreach (ServerBuild serverBuild in _serverBuilds) { IBuildServer buildServer = GetBuildServer(serverBuild.ServerUri.ToString()); IBuildDefinition buildDefinition = buildServer.QueryBuildDefinitionsByUri(new[] { serverBuild.BuildUri })[0]; string[] buildInformation = new string[2]; buildInformation[0] = buildDefinition.Name; IBuildDetail lastBuildDetails = buildServer.QueryBuildsByUri(new[] { buildDefinition.LastBuildUri }, null, QueryOptions.None)[0]; if (lastBuildDetails != null) { buildInformation[1] = lastBuildDetails.Status.ToString(); } ImageIndex imageIndex = lastBuildDetails == null ? ImageIndex.Red : GetImageIndex(lastBuildDetails.Status); ListViewItem listViewItem = new ListViewItem(buildInformation, (int)imageIndex) { Tag = serverBuild }; AddItem(listViewItem); if (imageIndex == ImageIndex.Red) { overallImageIndex = ImageIndex.Red; culprit = lastBuildDetails == null ? "Unable to find build" : lastBuildDetails.RequestedFor; } else if (imageIndex == ImageIndex.Yellow && overallImageIndex == ImageIndex.Green) { overallImageIndex = ImageIndex.Yellow; } } SetSystemTrayIcon(overallImageIndex); // SetX10IntegrationStatus(overallImageIndex); if (overallImageIndex != _lastBuildStatus) { SetRadiatorBuildStatusColor(overallImageIndex); AnnounceCulprit(culprit); _lastBuildStatus = overallImageIndex; } } catch (Exception exception) { Console.WriteLine(exception); } Thread.Sleep(5000); } }
public static WorkItemDtoCollection GetWorkItemsFromTeamBuilds(this TfsConfigurationServer tfsConfigurationServer, Guid teamProjectCollectionId, Uri[] teamBuildUris) { if (tfsConfigurationServer == null) { throw new ArgumentNullException("tfsConfigurationServer"); } TfsTeamProjectCollection tfsTeamProjectCollection = tfsConfigurationServer.GetTeamProjectCollection(teamProjectCollectionId); IBuildServer buildServer = tfsTeamProjectCollection.GetService <IBuildServer>(); WorkItemStore workItemStore = tfsTeamProjectCollection.GetService <WorkItemStore>(); IBuildDetail[] buildDetails = buildServer.QueryBuildsByUri(teamBuildUris, new[] { InformationTypes.AssociatedWorkItem }, QueryOptions.Definitions); Dictionary <int, WorkItemDto> workItems = new Dictionary <int, WorkItemDto>(); foreach (IBuildDetail buildDetail in buildDetails) { List <IWorkItemSummary> workItemSummaries = InformationNodeConverters.GetAssociatedWorkItems(buildDetail); foreach (IWorkItemSummary workItemSummary in workItemSummaries) { if (!workItems.ContainsKey(workItemSummary.WorkItemId)) { WorkItem workItem = workItemStore.GetWorkItem(workItemSummary.WorkItemId); WorkItemDto workItemDto = WorkItemDto.CreateFromWorkItem(workItem, buildDetail.BuildNumber); workItems.Add(workItem.Id, workItemDto); } } } WorkItemDtoCollection workItemDtoCollection = new WorkItemDtoCollection(); foreach (KeyValuePair <int, WorkItemDto> keyValuePair in workItems) { workItemDtoCollection.Add(keyValuePair.Value); } return(workItemDtoCollection); }