private async void SteamCMD_Click(object sender, RoutedEventArgs e) { var result = MessageBox.Show(_globalizer.GetResourceString("MainWindow_SteamCmd_Label"), _globalizer.GetResourceString("MainWindow_SteamCmd_Title"), MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { ProgressWindow window = null; try { var updater = new SteamCmdUpdater(); var cancelSource = new CancellationTokenSource(); window = new ProgressWindow(_globalizer.GetResourceString("Progress_ReinstallSteamCmd_WindowTitle")); window.Closed += Window_Closed; window.Owner = this; window.Show(); await Task.Delay(1000); await updater.ReinstallSteamCmdAsync(Config.Default.DataDir, new Progress <SteamCmdUpdater.Update>(u => { var resourceString = string.IsNullOrWhiteSpace(u.StatusKey) ? null : _globalizer.GetResourceString(u.StatusKey); var message = resourceString != null ? $"{SteamCmdUpdater.OUTPUT_PREFIX} {resourceString}" : u.StatusKey; window?.AddMessage(message); if (u.FailureText != null) { message = string.Format(_globalizer.GetResourceString("MainWindow_SteamCmd_FailedLabel"), u.FailureText); window?.AddMessage(message); MessageBox.Show(message, _globalizer.GetResourceString("MainWindow_SteamCmd_FailedTitle"), MessageBoxButton.OK, MessageBoxImage.Error); } }), cancelSource.Token); } catch (Exception ex) { var message = string.Format(_globalizer.GetResourceString("MainWindow_SteamCmd_FailedLabel"), ex.Message); window?.AddMessage(message); MessageBox.Show(message, _globalizer.GetResourceString("MainWindow_SteamCmd_FailedTitle"), MessageBoxButton.OK, MessageBoxImage.Error); } finally { if (window != null) { window.CloseWindow(); } } } }