예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
        }