public void FixtureSetup() { string cnnString = "Server=127.0.0.1;Port=5432;Database=HexaCorePostgreSqlTest;User Id=postgres;Password=password;"; ApplicationContext.Start(cnnString); // Validator and TraceManager IoCContainer container = ApplicationContext.Container; container.RegisterInstance <ILoggerFactory>(new Log4NetLoggerFactory()); // Context Factory var ctxFactory = new NHibernateUnitOfWorkFactory(DbProvider.PostgreSQLProvider, cnnString, string.Empty, typeof(PostgreSQLTest).Assembly, ApplicationContext.Container); container.RegisterInstance <IUnitOfWorkFactory>(ctxFactory); container.RegisterInstance <IDatabaseManager>(ctxFactory); // Repositories //container.RegisterType<IEntityARepository, EntityARepository>(); // Services if (!ctxFactory.DatabaseExists()) { ctxFactory.CreateDatabase(); } ctxFactory.ValidateDatabaseSchema(); ctxFactory.RegisterSessionFactory(container); }
public void Load(IoCContainer container) { var context = new HttpContextWrapper(HttpContext.Current); container.RegisterInstance<HttpContextBase>(context, ComponentLifeStyle.PerWebRequest); container.RegisterInstance<HttpRequestBase>(context.Request, ComponentLifeStyle.PerWebRequest); container.RegisterInstance<HttpResponseBase>(context.Response, ComponentLifeStyle.PerWebRequest); container.RegisterInstance<HttpServerUtilityBase>(context.Server, ComponentLifeStyle.PerWebRequest); container.RegisterInstance<HttpSessionStateBase>(context.Session, ComponentLifeStyle.PerWebRequest); }
public NHContextFactory(DbProvider provider, string connectionString, string cacheProvider, Assembly mappingsAssembly, IoCContainer container) { _DbProvider = provider; _connectionString = connectionString; FluentConfiguration cfg = null; switch (_DbProvider) { case DbProvider.MsSqlProvider: { cfg = Fluently.Configure().Database(MsSqlConfiguration.MsSql2008 .Raw("format_sql", "true") .ConnectionString(_connectionString)) .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.SqlExceptionConverter, typeof(SqlExceptionHandler).AssemblyQualifiedName)) .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.DefaultSchema, "dbo")); break; } case DbProvider.SQLiteProvider: { cfg = Fluently.Configure().Database(SQLiteConfiguration.Standard .Raw("format_sql", "true") .ConnectionString(_connectionString)); _InMemoryDatabase = _connectionString.ToUpperInvariant().Contains(":MEMORY:"); break; } case DbProvider.SqlCe: { cfg = Fluently.Configure().Database(MsSqlCeConfiguration.Standard .Raw("format_sql", "true") .ConnectionString(_connectionString)) .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.SqlExceptionConverter, typeof(SqlExceptionHandler).AssemblyQualifiedName)); _validationSupported = false; break; } case DbProvider.Firebird: { cfg = Fluently.Configure().Database(new FirebirdConfiguration() .Raw("format_sql", "true") .ConnectionString(_connectionString)); break; } case DbProvider.PostgreSQLProvider: { cfg = Fluently.Configure().Database(PostgreSQLConfiguration.PostgreSQL82 .Raw("format_sql", "true") .ConnectionString(_connectionString)); _validationSupported = false; break; } } Guard.IsNotNull(cfg, string.Format("Db provider {0} is currently not supported.", _DbProvider.GetEnumMemberValue())); var pinfo = typeof(FluentConfiguration) .GetProperty("Configuration", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); var nhConfiguration = pinfo.GetValue(cfg, null); container.RegisterInstance<Configuration>(nhConfiguration); cfg.Mappings(m => m.FluentMappings.Conventions.AddAssembly(typeof(NHContextFactory).Assembly)) .Mappings(m => m.FluentMappings.Conventions.AddAssembly(mappingsAssembly)) .Mappings(m => m.FluentMappings.AddFromAssembly(mappingsAssembly)) .Mappings(m => m.HbmMappings.AddFromAssembly(typeof(NHContextFactory).Assembly)) .Mappings(m => m.HbmMappings.AddFromAssembly(mappingsAssembly)) .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.BatchSize, "100")) .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.UseProxyValidator, "true")); if (!string.IsNullOrEmpty(cacheProvider)) { cfg.ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.CacheProvider, cacheProvider)) //"NHibernate.Cache.HashtableCacheProvider" .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.UseSecondLevelCache, "true")) .ExposeConfiguration(c => c.Properties.Add(NHibernate.Cfg.Environment.UseQueryCache, "true")); } _builtConfiguration = cfg.BuildConfiguration(); _builtConfiguration.SetProperty(NHibernate.Cfg.Environment.ProxyFactoryFactoryClass, typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); #region Add Listeners to NHibernate pipeline.... _builtConfiguration.SetListeners(ListenerType.FlushEntity, new IFlushEntityEventListener[] { new AuditFlushEntityEventListener() }); _builtConfiguration.SetListeners(ListenerType.PreInsert, _builtConfiguration.EventListeners.PreInsertEventListeners.Concat<IPreInsertEventListener>( new IPreInsertEventListener[] { new ValidateEventListener(), new AuditEventListener() }).ToArray()); _builtConfiguration.SetListeners(ListenerType.PreUpdate, _builtConfiguration.EventListeners.PreUpdateEventListeners.Concat<IPreUpdateEventListener>( new IPreUpdateEventListener[] { new ValidateEventListener(), new AuditEventListener() }).ToArray()); #endregion }
// Registers NH session factoy for testing purposes. public void RegisterSessionFactory(IoCContainer container) { _CreateSessionFactory(); container.RegisterInstance<ISessionFactory>(_sessionFactory); }
// Registers Raven IDocumentStore for testing purposes. public void RegisterSessionFactory(IoCContainer container) { container.RegisterInstance<EmbeddableDocumentStore>(_documenFactory); }