static NHibernateConfigurator() { var sqlitePersistenceConfigurerProvider = new SqlitePersistenceConfigurerProvider(); #if DEBUG FluentConfigurationSerializer.IsEnabled = false; #endif var configurationProvider = new FluentConfigurationProvider(sqlitePersistenceConfigurerProvider, new AssemblyLocator()); _configuration = configurationProvider.Configure().GetEnumerator().Current; _configuration = _configuration.DataBaseIntegration(db => db.ConnectionProvider <TestConnectionProvider> ()); _configuration.SetProperty(Environment.CurrentSessionContextClass, "thread_static"); var props = _configuration.Properties; if (props.ContainsKey(Environment.ConnectionStringName)) { props.Remove(Environment.ConnectionStringName); } // This line is only for TFS integration build MSTest runner ForceLoadingAssembliesForMsTestRunner(); _sessionFactory = _configuration.BuildSessionFactory(); }
public void Setup() { typeProvider = new Mock<ITypeProvider>(); factory = new Mock<IFluentConfigurationFactory>(); searchFactory = new Mock<IDirectorySearchFactory>(); assetProvider = new Mock<IAssetProvider>(); provider = new FluentConfigurationProvider(typeProvider.Object, assetProvider.Object, searchFactory.Object, factory.Object); }
private static void Main() { var appConfig = new AppSettingsConfiguration(); var connectionStringBuilder = new SqlConnectionStringBuilder(); connectionStringBuilder.DataSource = appConfig.GetProperty("DatabaseServerName"); connectionStringBuilder.IntegratedSecurity = true; var dbCreated = false; var databaseName = appConfig.GetProperty("DatabaseCatalogName"); var sqlDataPath = String.Empty; // appConfig.GetProperty("SqlDataPath"); using (var sqlConnnection = new SqlConnection(connectionStringBuilder.ConnectionString)) { sqlConnnection.Open(); sqlDataPath = GetDbFilePath(sqlConnnection, "master"); if (!CheckDbExists(sqlConnnection, databaseName)) { CreateDatabase(sqlConnnection, databaseName, sqlDataPath); dbCreated = true; } } var appSettingsConfiguration = new AppSettingsConfiguration(); Console.WriteLine("Creating schema script...."); var msSql2008PersistenceConfigurerProvider = new MsSql2008PersistenceConfigurerProvider(appSettingsConfiguration); #if DEBUG FluentConfigurationSerializer.IsEnabled = false; #endif IConfigurationProvider fluentConfigurationProvider = new FluentConfigurationProvider(msSql2008PersistenceConfigurerProvider, new AssemblyLocator()); var configuration = fluentConfigurationProvider.Configure().GetEnumerator().Current; ISessionFactoryProvider sessionFactoryProvider = new SessionFactoryProvider(fluentConfigurationProvider); var sessionFactory = sessionFactoryProvider.GetFactory(null); var exportFileName = appConfig.GetProperty(ExportOutputFilePropertyName); var sb = new StringBuilder(); var headerComment = string.Format( "{0}{0}{1}{0}{2}{0}{3}{0}", Environment.NewLine, "/***********************************************************", "Begin: SQL Scripts to create RemGenDatabase database objects", "***********************************************************/" ); sb.Append(headerComment); var sql = GenerateSchemaCreationSql(); using (var session = sessionFactory.OpenSession()) { TextWriter textWriter = new StringWriter(); new SchemaExport(configuration).Execute( true, false, false, session.Connection, textWriter); sql += textWriter.ToString(); } sb.Append(sql); sb.Append(Environment.NewLine); sb.Append("/***********************************************************"); sb.Append(Environment.NewLine); sb.Append("End: SQL Scripts to create RemGenDatabase database objects"); sb.Append(Environment.NewLine); sb.Append("***********************************************************/"); sb.Append(Environment.NewLine); sb.Append(Environment.NewLine); Debug.Write(sb.ToString()); Console.WriteLine(sb.ToString()); using (var fs = new FileStream(exportFileName, FileMode.OpenOrCreate, FileAccess.Write)) { using (var streamWriter = new StreamWriter(fs)) { streamWriter.Write(sb.ToString()); } } Console.WriteLine("Deploy to Database (Y/N)?"); var answer = Console.ReadLine(); if (string.Compare(answer, "yes", true) == 0 || string.Compare(answer, "y", true) == 0) { if (!dbCreated) { Console.WriteLine("Dropping Database..."); using (var sqlConnection = new SqlConnection(connectionStringBuilder.ConnectionString)) { sqlConnection.Open(); using ( var sqlDropDatabaseCommand = new SqlCommand( string.Format( "USE {0} ALTER DATABASE {0} SET SINGLE_USER WITH ROLLBACK IMMEDIATE USE master DROP DATABASE {0}", databaseName), sqlConnection)) { sqlDropDatabaseCommand.ExecuteNonQuery(); } } } using (var sqlConnection = new SqlConnection(connectionStringBuilder.ConnectionString)) { sqlConnection.Open(); if (!dbCreated) { CreateDatabase(sqlConnection, databaseName, sqlDataPath); } } //connectionStringBuilder.InitialCatalog = databaseName; using (var sqlConnection = new SqlConnection(connectionStringBuilder.ConnectionString)) { sqlConnection.Open(); sqlConnection.ChangeDatabase(databaseName); Console.WriteLine("Running schema script..."); var fullScript = sb.ToString(); var goSplit = fullScript.Split( new[] { string.Format("go {0}", Environment.NewLine) }, StringSplitOptions.RemoveEmptyEntries); foreach (var sqlstring in goSplit) { var sqlToRun = sqlstring; if (sqlstring == goSplit[0]) { sqlToRun = sqlstring.Replace(headerComment, ""); } using (var createSchemaCommand = new SqlCommand(sqlToRun, sqlConnection)) { createSchemaCommand.ExecuteNonQuery(); } } } } }