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(); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }