Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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) { }
        }
Esempio n. 4
0
        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);
            }
        }