Beispiel #1
0
        bool TryRestoreDataBackupIfRequested(BackupManager backupManager, DataBackupUserSettings userSettings, ILogger logger)
        {
            if (userSettings.RestoreBackupRequested)
            {
                bool result = false;

                try
                {
                    backupManager.RestoreDataBackup(userSettings.RestoreBackupName);
                    result = true;
                }
                catch (DataBackupRestoreCanceledException exception)
                {
                    logger.Info(exception,
                                $"Canceled restore of backup named: {userSettings.RestoreBackupName}.");
                }
                catch (Exception exception)
                {
                    logger.Error(exception,
                                 $"Unable to restore backup named {userSettings.RestoreBackupName}. Cancelling. Please try to restore another backup.");
                }

                userSettings.RestoreBackupRequested = false;
                userSettings.RestoreBackupName      = string.Empty;
                userSettings.Save();

                return(result);
            }

            return(false);
        }
        public void ScheduleRestore([NotNull] DataBackup dataBackup)
        {
            if (dataBackup == null)
            {
                throw new ArgumentNullException(nameof(dataBackup));
            }

            var dialogResult = MessageBox.Show(
                "Selected backup will be restored after Wurm Assistant is restarted. Current data will be overwritten.",
                "Confirmation needed",
                MessageBoxButton.OKCancel);

            if (dialogResult == MessageBoxResult.Cancel || dialogResult == MessageBoxResult.None)
            {
                return;
            }

            userSettings.RestoreBackupRequested = true;
            userSettings.RestoreBackupName      = dataBackup.BackupName;
            userSettings.Save();
            RefreshBackupSystemStatus();
        }