private async void SetButton_Click(object sender, RoutedEventArgs e) { string changedSetting = viewModel.SettingName; bool isResetRequired = NetworkResetRequiredSettingsList.Contains(changedSetting) || PrinterResetRequiredSettingsList.Contains(changedSetting); bool resetPrinter = PrinterResetRequiredSettingsList.Contains(changedSetting); bool success = true; await printerManager.PerformAction($"Setting value for setting {changedSetting}...", (zebraCardPrinter, connection) => { if (DisableWiredDhcpSettingsList.Contains(changedSetting)) { zebraCardPrinter.SetSetting(ZebraCardSettingNames.WIRED_DHCP, "disabled"); } if (DisableWirelessDhcpSettingsList.Contains(changedSetting)) { zebraCardPrinter.SetSetting(ZebraCardSettingNamesZmotif.WIRELESS_DHCP, "disabled"); } zebraCardPrinter.SetSetting(changedSetting, viewModel.NewSettingValue); }, (exception) => { success = false; MessageBoxHelper.ShowError($"Error setting value for setting {viewModel.SettingName}: {exception.Message}"); }, () => { if (success) { Application.Current.Dispatcher.Invoke(() => { Close(); }); if (isResetRequired) { Application.Current.Dispatcher.Invoke(() => { string resetButtonName = "Reset"; string resetTypeString = resetPrinter ? "printer" : "network"; MessageDialog resetDialog = new MessageDialog { Title = "Reset Required", Message = $"The setting {viewModel.SettingName} requires a {resetTypeString} reset for any changes to take effect. Click {resetButtonName} to reset the {resetTypeString}.", PositiveButtonText = resetButtonName }; resetDialog.PositiveButtonClicked += async() => { await printerManager.ReestablishConnection(resetPrinter); }; resetDialog.ShowDialog(); }); } else { settingsDemo.RetrieveSettings(); } } }); }