public override InstallStatus GetInstallStatus() { if (_configuration == null || _localConfig == null) { return new InstallStatus(InstallStatusType.RequiresConfiguration); } var installStatus = new InstallStatus(InstallStatusType.Pending); //now, let check if we've actually been installed try { var isValid = ValidateSchema(_configuration); if (isValid) { installStatus = new InstallStatus(InstallStatusType.Completed); } } catch (Exception ex) { //if an exception is thrown other than an HibernateException then its probably attempted an install and failed //such as invalid connection details installStatus = new InstallStatus(InstallStatusType.TriedAndFailed, ex); } return installStatus; }
public override InstallStatus TryInstall() { switch (_localConfig.Driver) { case SupportedNHDrivers.MsSqlCe4: using (new WriteLockDisposable(SchemaValidationLocker)) { using (var sqlCeEngine = new SqlCeEngine(_configuration.Properties[Environment.ConnectionString])) { if (!sqlCeEngine.Verify()) { sqlCeEngine.CreateDatabase(); } } } break; } InstallStatus installStatus; try { var schemaAlreadyValid = ValidateSchema(_configuration); if (schemaAlreadyValid) return new InstallStatus(InstallStatusType.Completed); UpdateSchema(_configuration); installStatus = new InstallStatus(InstallStatusType.Completed); } catch (Exception ex) { installStatus = new InstallStatus(InstallStatusType.TriedAndFailed, ex); } return installStatus; }
/// <summary> /// Initializes a new instance of the <see cref="ProviderBootstrapper"/> class if insufficient configuration information is yet available. /// </summary> /// <param name="installStatus">The install status.</param> /// <remarks></remarks> public ProviderBootstrapper(InstallStatus installStatus) { _installStatus = installStatus; }