private void _dispatcherTimer_Tick(object sender, EventArgs e) { _dispatcherTimer.Stop(); var latestStatuses = _statusProvider.GetStatusList(_uriList); foreach (var newStatus in latestStatuses) { var oldStatus = _buildStatuses.Single(b => b.Key == newStatus.Key); if (newStatus.BuildId != oldStatus.BuildId) { var title = newStatus.BuildName; _taskbarIcon.ShowBalloonTip(title, MenuItemHelper.BuildBallonBody(newStatus), ResourceHelper.GetIcon(newStatus), true); foreach (var contextMenuItem in _contextMenu.Items) { var menuItem = contextMenuItem as MenuItem; var tag = menuItem?.Tag as Uri; if (tag == null || tag != oldStatus.Key) { continue; } MenuItemHelper.ConfigureMenuItem(menuItem, newStatus); } } oldStatus.Status = newStatus.Status; oldStatus.BuildId = newStatus.BuildId; oldStatus.RequestedBy = newStatus.RequestedBy; } _dispatcherTimer.Start(); }
private void AddMenuItems(List <Uri> uriList) { _buildStatuses = _statusProvider.GetStatusList(uriList); foreach (var buildStatus in _buildStatuses) { var item = new MenuItem(); MenuItemHelper.ConfigureMenuItem(item, buildStatus); item.Click += ItemOnClick; _contextMenu.Items.Insert(0, item); } }