private void Restore(Backup backup, string backupId, ConfirmCallback shouldBackup, ConfirmCallback canOverwrite)
        {
            backupId = _backupRepository.GetBackupId(backup, backupId);

            if (shouldBackup(backup, backupId))
            {
                var newBackupId = _backupRepository.GetBackupId();
                Backup(backup, newBackupId, canOverwrite);
            }

            _backupRepository.LoadBackup(backup, backupId);
        }