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);
}
}