private void InvokeSetTrayIcon(IEnumerable<BuildStatus> buildStatuses)
{
var buildStatusesAndSettings = from buildStatus in buildStatuses
join setting in _settings.CiEntryPointSettings.SelectMany(i => i.BuildDefinitionSettings) on buildStatus.BuildDefinitionId equals setting.Id
select new { buildStatus, setting };
bool anyBuildBroken = buildStatusesAndSettings
.Any(bs => bs.setting.AffectsTrayIcon && (
bs.buildStatus.BuildStatusEnum == BuildStatusEnum.Broken));
TrayIcon trayIcon = anyBuildBroken ? TrayIcon.Red : TrayIcon.Green;
InvokeSetTrayIcon(trayIcon);
}