private async Task RemoveSelectedVersion() { if (MessageBox.Show(Window, App.Instance.GetLocalizedMessage("RemoveFactorioVersion", MessageType.Question), App.Instance.GetLocalizedMessageTitle("RemoveFactorioVersion", MessageType.Question), MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { var progressWindow = new ProgressWindow() { Owner = Window }; var progressViewModel = (ProgressViewModel)progressWindow.ViewModel; progressViewModel.ActionName = App.Instance.GetLocalizedResourceString("RemovingFactorioVersionAction"); progressViewModel.ProgressDescription = App.Instance.GetLocalizedResourceString("DeletingFilesDescription"); progressViewModel.IsIndeterminate = true; Task deleteTask = Task.Run(() => { SelectedVersion.DeleteLinks(); SelectedVersion.Directory.Delete(true); }); Task closeWindowTask = deleteTask.ContinueWith(t => progressWindow.Dispatcher.Invoke(progressWindow.Close)); progressWindow.ShowDialog(); await deleteTask; await closeWindowTask; FactorioVersions.Remove(SelectedVersion); } }
private async Task ApplyUpdate(string token, UpdateTarget target, IProgress <double> progress, IProgress <bool> canCancel, IProgress <string> description, CancellationToken cancellationToken) { canCancel.Report(true); description.Report(App.Instance.GetLocalizedResourceString("UpdatingFactorioStage1Description")); var files = await FactorioUpdater.DownloadUpdatePackagesAsync(GlobalCredentials.Instance.Username, token, target, progress, cancellationToken); if (!cancellationToken.IsCancellationRequested) { progress.Report(0); canCancel.Report(false); description.Report(App.Instance.GetLocalizedResourceString("UpdatingFactorioStage2Description")); await SelectedVersion.UpdateAsync(files, progress); } }
/// <summary> /// Saves this data to Registry /// </summary> public void WriteToRegistry() { try { var regKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); regKey = regKey.OpenSubKey(RegKey64); var key = string.Format(@"Dynamo {0}.{1}", ThisDynamoVersion.Major, ThisDynamoVersion.Minor); regKey = regKey.OpenSubKey(key, true); if (null != regKey) { regKey.SetValue(RevitVersion, SelectedVersion.ToString(), RegistryValueKind.String); } } catch (SystemException) { } }
private async Task RemoveSelectedVersion() { if (SelectedVersion == null) { return; } if (MessageBox.Show(Window, App.Instance.GetLocalizedMessage("RemoveFactorioVersion", MessageType.Question), App.Instance.GetLocalizedMessageTitle("RemoveFactorioVersion", MessageType.Question), MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { var progressWindow = new ProgressWindow { Owner = Window }; var progressViewModel = (ProgressViewModel)progressWindow.ViewModel; progressViewModel.ActionName = App.Instance.GetLocalizedResourceString("RemovingFactorioVersionAction"); progressViewModel.ProgressDescription = App.Instance.GetLocalizedResourceString("DeletingFilesDescription"); progressViewModel.IsIndeterminate = true; progressViewModel.CanCancel = false; Task closeWindowTask = null; try { Task deleteTask = SelectedVersion.DeleteAsync(); closeWindowTask = deleteTask.ContinueWith(t => progressWindow.Dispatcher.Invoke(progressWindow.Close)); progressWindow.ShowDialog(); await deleteTask; } finally { if (closeWindowTask != null) { await closeWindowTask; } } FactorioVersions.Remove(SelectedVersion); } }