コード例 #1
0
        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;
        }
コード例 #2
0
        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;
        }
コード例 #3
0
 /// <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;
 }