private void SetStatus(CMApplication app) { Dispatcher.Invoke(() => { StatusRed.Visibility = Visibility.Hidden; StatusGreen.Visibility = Visibility.Hidden; StatusOrange.Visibility = Visibility.Hidden; StatusBlue.Visibility = Visibility.Hidden; StatusRed.ToolTip = app.EvaluationStateText; StatusGreen.ToolTip = app.EvaluationStateText; StatusOrange.ToolTip = app.EvaluationStateText; StatusBlue.ToolTip = app.EvaluationStateText; if (app.InstallState.Equals("Installed") && app.EvaluationState == 1 && !_isReschedule) { StatusGreen.Visibility = Visibility.Visible; StatusText.Text = _availableAppsSettings.AppIsInstalledStatusText; return; } switch (app.EvaluationState) { case 1: case 3: if (_isReschedule) { StatusGreen.Visibility = Visibility.Visible; StatusText.Text = _availableAppsSettings.InstallationHasBeenScheduledStatusText; } else { StatusBlue.Visibility = Visibility.Visible; StatusText.Text = _availableAppsSettings.AppCanBeInstalledStatusText; } break; case 4: case 16: case 24: case 25: StatusRed.Visibility = Visibility.Visible; StatusText.Text = _availableAppsSettings.AppIsInErrorStateStatusText; break; default: StatusOrange.Visibility = Visibility.Visible; StatusText.Text = app.EvaluationState == 13 ? "Reboot pending." : _availableAppsSettings.AppIsBeingEnforcedStatusText; ProgressbarEnforcement.Visibility = Visibility.Visible; TpPicker.IsEnabled = false; BtInstall.IsEnabled = false; BtRepair.IsEnabled = false; BtSchedule.IsEnabled = false; if (_isReschedule) { if (SqlCe.IsAppScheduled(app.Id, app.Revision, out var id)) { SqlCe.SetEnforcedFlag(id); } _isReschedule = false; } break; } }); }