/************************************************************************************
*
* Umbraco Data Layer
* MIT Licensed work
* ©2008 Ruben Verborgh
*
***********************************************************************************/
namespace umbraco.DataLayer.Utility.Installer
{
///
/// Interface for a utility that helps installing an Umbraco data source.
///
public interface IInstallerUtility
{
///
/// Gets the current data source version.
///
/// The current version.
DatabaseVersion CurrentVersion{ get; }
///
/// Gets the latest available version.
///
/// The latest version.
DatabaseVersion LatestVersion{ get; }
///
/// Gets a value indicating whether this installer can connect to the data source.
///
///
/// true if the installer can connect; otherwise, false.
///
bool CanConnect { get; }
///
/// Gets a value indicating whether this installer can create a new database using the connection.
///
///
/// true if the installer can create a new database; otherwise, false.
///
//bool CanCreate { get; }
///
/// Gets a value indicating whether the data source is empty and ready for installation.
///
///
/// true if the data source is empty; otherwise, false.
///
bool IsEmpty { get; }
///
/// Gets a value indicating whether the data source has an older version number.
///
///
/// true if the data source is older; otherwise, false.
///
//bool IsOlderVersion { get; }
///
/// Gets a value indicating whether the data source has an up to date version.
///
///
/// true if the data source is up to date; otherwise, false.
///
bool IsLatestVersion { get; }
///
/// Gets a value indicating whether the installer can upgrade the data source.
///
///
/// true if the installer can upgrade the data source; otherwise, false.
///
/// Empty data sources can't be upgraded, just installed.
bool CanUpgrade { get; }
///
/// Installs the latest version into the data source.
///
///
/// If installing or upgrading is not supported.
void Install();
}
}