private async void Btn_FixNetFx_Click(object sender, EventArgs e) { Enabled = false; try { var feature = await Dism.EnableWindowsFeatures("NetFx3", DismProgress); // ReSharper disable once SwitchStatementMissingSomeCases switch (feature.FeatureState) { case DismPackageFeatureState.Staged: l_NetFx3State.Text = @"Staged"; l_NetFx3State.ForeColor = Color.Chocolate; btn_FixNetFx.Enabled = true; break; case DismPackageFeatureState.PartiallyInstalled: l_NetFx3State.Text = @"Partially installed"; l_NetFx3State.ForeColor = Color.Chocolate; btn_FixNetFx.Enabled = true; break; case DismPackageFeatureState.Installed: l_NetFx3State.Text = @"Installed"; l_NetFx3State.ForeColor = Color.DarkGreen; btn_FixNetFx.Enabled = false; break; case DismPackageFeatureState.InstallPending: l_NetFx3State.Text = @"Install pending"; l_NetFx3State.ForeColor = Color.DarkGreen; btn_FixNetFx.Enabled = false; break; default: l_NetFx3State.Text = $@"Not supported ({feature.FeatureState})"; l_NetFx3State.ForeColor = Color.Red; btn_FixNetFx.Enabled = false; break; } } catch (Exception ex) { MsgBox.ShowMessage( $"Error: {ex.Message}", @"Celeste Fan Project", MessageBoxButtons.OK, MessageBoxIcon.Warning); } Enabled = true; }
private async void EnableNetFrameworkBtnClick(object sender, RoutedEventArgs e) { IsEnabled = false; try { var feature = await Dism.EnableWindowsFeatures("NetFx3", OnDismInstallProgress); var(statusText, colorLabel, canBeEnabled) = GetLabelStatusForDismFeature(feature); NetFrameworkStatusLabel.Text = statusText; NetFrameworkStatusLabel.Foreground = new SolidColorBrush(colorLabel); EnableNetFrameworkBtn.IsEnabled = canBeEnabled; } catch (Exception ex) { Logger.Error(ex, ex.Message); GenericMessageDialog.Show(Celeste_Launcher_Gui.Properties.Resources.GenericUnexpectedErrorMessage, DialogIcon.Error, DialogOptions.Ok); } IsEnabled = true; }