Exemplo n.º 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 DataBackupsViewModel([NotNull] BackupManager backupManager, [NotNull] DataBackupUserSettings userSettings)
        {
            if (backupManager == null)
            {
                throw new ArgumentNullException(nameof(backupManager));
            }
            if (userSettings == null)
            {
                throw new ArgumentNullException(nameof(userSettings));
            }
            this.backupManager = backupManager;
            this.userSettings  = userSettings;

            var backups = backupManager.GetBackups().OrderByDescending(backup => backup.Timestamp);

            foreach (var dataBackup in backups)
            {
                dataBackups.Add(dataBackup);
            }

            RefreshBackupSystemStatus();
        }