Ejemplo n.º 1
0
        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;
                }
            });
        }