using JWLMerge.BackupFileServices.Models.Database;
namespace JWLMerge.BackupFileServices
{
using System;
using System.Collections.Generic;
using Events;
using Models;
///
/// The BackupFileService interface.
///
public interface IBackupFileService
{
event EventHandler ProgressEvent;
///
/// Loads the specified backup file.
///
///
/// The backup file path.
///
///
/// The .
///
BackupFile Load(string backupFilePath);
///
/// Merges the specified backup files.
///
/// The files.
/// Merged file
BackupFile Merge(IReadOnlyCollection files);
///
/// Merges the specified backup files.
///
/// The files.
/// Merged file
BackupFile Merge(IReadOnlyCollection files);
///
/// Creates a blank backup file.
///
///
/// A .
///
BackupFile CreateBlank();
///
/// Writes the specified backup to a "jwlibrary" file.
///
/// The backup data.
/// The new database file path.
/// The original jwlibrary file path on which to base the new schema.
void WriteNewDatabase(
BackupFile backup,
string newDatabaseFilePath,
string originalJwlibraryFilePathForSchema);
///
/// Removes all the tags from the specified database.
///
/// The database.
/// Number of items removed
int RemoveTags(Database database);
///
/// Removes bookmarks from the specified database.
///
/// The database.
/// Number of items removed
int RemoveBookmarks(Database database);
///
/// Removes notes from the specified database.
///
/// The database.
/// Number of items removed
int RemoveNotes(Database database);
///
/// Removes underlining (user marks) from the specified database
///
/// The database.
/// Number of items removed
int RemoveUnderlining(Database database);
}
}