示例#1
0
        private void Reset()
        {
            _progress          = 0;
            _progressIncrement = 0;

            PBar.Visible          = true;
            PBar.Value            = 0;
            LvwStatus.HeaderStyle = ColumnHeaderStyle.Clickable; // Add Header to ListView
            LvwStatus.Items.Clear();
            LvwStatus.Refresh();
        }
示例#2
0
        /// <summary>
        /// Check system for configured settings
        /// </summary>
        private async void BtnSettingsAnalyze_Click(object sender, EventArgs e)
        {
            Reset();
            int performSettingsCount = 0;

            LblStatus.Text             = Locale.statusDoWait;
            BtnSettingsAnalyze.Enabled = false;

            LvwStatus.BeginUpdate();

            List <SettingNode> selectedSettings = CollectSettingNodes();

            foreach (SettingNode node in selectedSettings)
            {
                var          setting = node.Setting;
                ListViewItem state   = new ListViewItem(node.Parent.Text + ": " + setting.ID());
                ConfiguredTaskAwaitable <bool> analyzeTask = Task <bool> .Factory.StartNew(() => setting.CheckSetting()).ConfigureAwait(true);

                bool shouldPerform = await analyzeTask;

                if (shouldPerform)
                {
                    state.SubItems.Add(Locale.statusFailedConfigure); // Not configured
                    state.BackColor = Color.LavenderBlush;

                    performSettingsCount += 1;
                }
                else
                {
                    state.SubItems.Add(Locale.statusSuccessConfigure); // Configured
                    state.BackColor = Color.Honeydew;
                }

                state.Tag = setting;
                LvwStatus.Items.Add(state);
                IncrementProgress();
            }

            DoProgress(100);

            // Summary
            ListViewItem sum = new ListViewItem(Locale.summarySelected + " " + $"{selectedSettings.Count}" + " | " + Locale.summaryConfigured + " " + $"{selectedSettings.Count - performSettingsCount}" + " | " + Locale.summaryNotConfigured + " " + $"{performSettingsCount}");

            sum.SubItems.Add(Locale.summaryInfo);
            LvwStatus.Items.Insert(0, sum);

            LblStatus.Text             = Locale.statusFinishAnalyze;
            BtnSettingsAnalyze.Enabled = true;
            LvwStatus.EndUpdate();

            ResizeListViewColumns(LvwStatus);
        }
示例#3
0
        /// <summary>
        /// Check system for configured settings
        /// </summary>
        private async void BtnSettingsAnalyze_Click(object sender, EventArgs e)
        {
            Reset();
            LblStatus.Text             = _doWait;
            BtnSettingsAnalyze.Enabled = false;

            LvwStatus.BeginUpdate();

            List <SettingNode> selectedSettings = CollectSettingNodes();

            foreach (SettingNode node in selectedSettings)
            {
                var          setting = node.Setting;
                ListViewItem state   = new ListViewItem(node.Parent.Text + ": " + setting.ID());
                ConfiguredTaskAwaitable <bool> analyzeTask = Task <bool> .Factory.StartNew(() => setting.CheckSetting()).ConfigureAwait(true);

                bool shouldPerform = await analyzeTask;

                if (shouldPerform)
                {
                    state.SubItems.Add(_failedConfigure);
                    state.BackColor = Color.LavenderBlush;
                }
                else
                {
                    state.SubItems.Add(_successConfigure);
                    state.BackColor = Color.Honeydew;
                }

                state.Tag = setting;
                LvwStatus.Items.Add(state);
                IncrementProgress();
            }

            DoProgress(100);

            // Summary
            LblStatus.Text             = _finishAnalyze;
            BtnSettingsAnalyze.Enabled = true;
            LvwStatus.EndUpdate();

            ResizeListViewColumns(LvwStatus);
        }
示例#4
0
        /// <summary>
        /// Apply selected settings
        /// </summary>
        ///
        private async void ApplySettings(List <SettingNode> treeNodes)
        {
            BtnSettingsDo.Enabled = false;
            LvwStatus.BeginUpdate();

            foreach (SettingNode node in treeNodes)
            {
                // Add status info
                LblStatus.Text = Locale.statusDoWait + " (" + node.Text + ")";

                var setting = node.Setting;
                ConfiguredTaskAwaitable <bool> performTask = Task <bool> .Factory.StartNew(() => setting.DoSetting()).ConfigureAwait(true);

                var result = await performTask;

                var listItem = new ListViewItem(setting.ID());
                if (result)
                {
                    listItem.SubItems.Add(Locale.statusSuccessApply); // Applied
                    listItem.BackColor = Color.Honeydew;
                }
                else
                {
                    listItem.SubItems.Add(Locale.statusFailedApply); // Not applied
                    listItem.BackColor = Color.LavenderBlush;
                }

                LvwStatus.Items.Add(listItem);
                IncrementProgress();
            }

            DoProgress(100);

            LblStatus.Text        = Locale.statusFinishApply;
            BtnSettingsDo.Enabled = true;
            LvwStatus.EndUpdate();

            ResizeListViewColumns(LvwStatus);
        }
示例#5
0
        /// <summary>
        ///  Revert selected settings
        /// </summary>
        private async void UndoSettings(List <SettingNode> treeNodes)
        {
            LblStatus.Text          = _doWait;
            BtnSettingsUndo.Enabled = false;
            LvwStatus.BeginUpdate();

            foreach (SettingNode node in treeNodes)
            {
                var setting = node.Setting;
                ConfiguredTaskAwaitable <bool> performTask = Task <bool> .Factory.StartNew(() => setting.UndoSetting()).ConfigureAwait(true);

                var result = await performTask;

                var listItem = new ListViewItem(setting.ID());
                if (result)
                {
                    listItem.SubItems.Add(_successApply);
                    listItem.BackColor = Color.Honeydew;
                }
                else
                {
                    listItem.SubItems.Add(_failedApply);
                    listItem.BackColor = Color.LavenderBlush;
                }

                LvwStatus.Items.Add(listItem);
                IncrementProgress();
            }

            DoProgress(100);

            LblStatus.Text          = _finishUndo;
            BtnSettingsUndo.Enabled = true;
            LvwStatus.EndUpdate();

            ResizeListViewColumns(LvwStatus);
        }