public void GenerateDatabaseSchema()
        {
            Configuration nhibConfig;

            try {
                nhibConfig = NHibernateConfigurator.GetConfiguration();
            } catch (Exception e) {
                Console.Out.WriteLine("ERROR " + e);
                throw;
            }
            string dropDbPath = @"..\..\..\db\drop_db.sql";

            using (var outFile = File.CreateText(dropDbPath))
                using (ISessionFactory sessionFactory = nhibConfig.BuildSessionFactory()) {
                    AddHeader(outFile);
                    using (ISession session = sessionFactory.OpenSession()) {
                        new SchemaExport(nhibConfig).Execute(false, false, true, session.Connection, outFile);
                    }
                }
            Console.Out.WriteLine("Drop DB script written to file " + new FileInfo(dropDbPath).FullName);

            string createDbPath = @"..\..\..\db\create_db.sql";

            using (var outFile = File.CreateText(createDbPath))
                using (ISessionFactory sessionFactory = nhibConfig.BuildSessionFactory()) {
                    AddHeader(outFile);
                    using (ISession session = sessionFactory.OpenSession()) {
                        new SchemaExport(nhibConfig).Execute(false, false, false, session.Connection, outFile);
                    }
                }
            Console.Out.WriteLine("Create DB script written to file " + new FileInfo(createDbPath).FullName);
        }
Exemplo n.º 2
0
 public static NHibernateDbBuilder For(DatabaseEngine databaseEngine,
                                       DbConnectionInfo dbConnectionInfo,
                                       MappingInfo mappingInfo)
 {
     return(new NHibernateDbBuilder(DbMediaBuilder.For(databaseEngine, dbConnectionInfo),
                                    NHibernateConfigurator.Create(databaseEngine, dbConnectionInfo, mappingInfo)));
 }
Exemplo n.º 3
0
        public virtual void createTestFixture()
        {
            NHibernateConfigurator.ConfigureOldDatabase(CreatePropertiesForSqlLite(DatabaseOldFilename));
            NHibernateConfigurator.ConfigureNewDatabase(CreatePropertiesForSqlLite(DatabaseNewFilename));

            CreateDatabase();
        }
Exemplo n.º 4
0
            /// <summary>
            /// Executes the code to be tested.
            /// </summary>
            protected override void Act()
            {
                var extensionConfigurationProviders    = A.Fake <IEnumerable <ExtensionNHibernateConfigurationProvider> >();
                var beforeBindMappingActivities        = A.Fake <IEnumerable <INHibernateBeforeBindMappingActivity> >();
                var authorizationStrategyConfigurators = A.Fake <IEnumerable <INHibernateFilterConfigurator> >();
                var filterCriteriaApplicatorProvider   = A.Fake <IFilterCriteriaApplicatorProvider>();
                var configurationActivities            = A.Fake <IEnumerable <INHibernateConfigurationActivity> >();

                var            connectionStringProvider = A.Fake <IOdsDatabaseConnectionStringProvider>();
                var            assembliesProvider       = A.Fake <AssembliesProvider>();
                DatabaseEngine engine = DatabaseEngine.SqlServer;
                var            ormMappingFileDataProvider = new OrmMappingFileDataProvider(assembliesProvider, engine, OrmMappingFileConventions.OrmMappingAssembly);

                var nHibernateConfigurator = new NHibernateConfigurator(extensionConfigurationProviders, beforeBindMappingActivities,
                                                                        authorizationStrategyConfigurators, filterCriteriaApplicatorProvider, configurationActivities, ormMappingFileDataProvider, connectionStringProvider);

                _configuration = nHibernateConfigurator.Configure();

                _persistentClasses = _configuration.ClassMappings
                                     .Where(
                    m => m.Table.Name.Equals(
                        CoreTableName,
                        StringComparison.InvariantCultureIgnoreCase))
                                     .ToList();
            }
Exemplo n.º 5
0
        public void InitTest()
        {
            m_sessionFactory = NHibernateConfigurator.GetSessionFactory(nameof(DatabaseTranslateTest));

            var localizationConfiguration = new LocalizationConfiguration
            {
                BasePath          = "localization",
                DefaultCulture    = new CultureInfo("cs"),
                SupportedCultures = new List <CultureInfo>
                {
                    new CultureInfo("en"),
                    new CultureInfo("cs"),
                },
                TranslateFallbackMode = LocTranslateFallbackMode.Key
            };

            var services = new ServiceCollection();

            services.AddLocalizationCore(localizationConfiguration, new NHibernateDatabaseConfiguration(m_sessionFactory));
            services.AddSingleton <ILoggerFactory>(NullLoggerFactory.Instance);
            services.AddSingleton(typeof(ILogger <>), typeof(Logger <>));

            var container            = services.BuildServiceProvider();
            var dbTranslateService   = container.GetRequiredService <IDatabaseTranslateService>();
            var dbDynamicTextService = container.GetRequiredService <IDatabaseDynamicTextService>();

            m_databaseLocalizationManager =
                new DatabaseLocalizationManager(localizationConfiguration, dbTranslateService, dbDynamicTextService);

            AddTestData(container);
        }
Exemplo n.º 6
0
        private void SetUpInitialData(InstallModel model, IDatabaseProvider provider)
        {
            var configurator = new NHibernateConfigurator(provider);

            ISessionFactory   sessionFactory   = configurator.CreateSessionFactory();
            ISession          session          = sessionFactory.OpenFilteredSession(CurrentRequestData.CurrentContext);
            IStatelessSession statelessSession = sessionFactory.OpenStatelessSession();
            var kernel = MaterialCMSApplication.Get <IKernel>();

            kernel.Rebind <ISession>().ToMethod(context => session);
            kernel.Rebind <IStatelessSession>().ToMethod(context => statelessSession);
            var site = new Site
            {
                Name      = model.SiteName,
                BaseUrl   = model.SiteUrl,
                CreatedOn = DateTime.UtcNow,
                UpdatedOn = DateTime.UtcNow
            };

            using (ITransaction transaction = statelessSession.BeginTransaction())
            {
                statelessSession.Insert(site);
                transaction.Commit();
            }
            CurrentRequestData.CurrentSite = session.Get <Site>(site.Id);

            kernel.Get <IInitializeDatabase>().Initialize(model);
            kernel.Get <ICreateInitialUser>().Create(model);
            kernel.GetAll <IOnInstallation>()
            .OrderBy(installation => installation.Priority)
            .ForEach(installation => installation.Install(model));
        }
Exemplo n.º 7
0
        public override void Load()
        {
            Kernel.Rebind <IDatabaseProvider>().ToMethod(context =>
            {
                if (context.Kernel.Get <IEnsureDatabaseIsInstalled>().IsInstalled())
                {
                    var databaseSettings = context.Kernel.Get <DatabaseSettings>();
                    var typeByName       = TypeHelper.GetTypeByName(databaseSettings.DatabaseProviderType);
                    if (typeByName == null)
                    {
                        return(null);
                    }
                    return(context.Kernel.Get(typeByName) as IDatabaseProvider);
                }
                return(null);
            });
            _configurator = _configurator ?? new NHibernateConfigurator(Kernel.Get <IDatabaseProvider>());
            _configurator.CacheEnabled = _cacheEnabled;

            Kernel.Bind <ISessionFactory>()
            .ToMethod(
                context => _configurator.CreateSessionFactory())
            .InSingletonScope();

            if (_forWebsite)
            {
                Kernel.Bind <ISession>().ToMethod(GetSession).InRequestScope();
            }
            else
            {
                Kernel.Bind <ISession>().ToMethod(GetSession).InThreadScope();
            }
            Kernel.Bind <IStatelessSession>()
            .ToMethod(context => context.Kernel.Get <ISessionFactory>().OpenStatelessSession()).InRequestScope();
        }
        public void ShouldBuildValidConfigurationObject()
        {
            Configuration configuration = NHibernateConfigurator.GetConfiguration();

            //the existence of mappings is checked in other test(s)
            Assert.IsNotNull(configuration);
        }
        protected InMemoryDatabaseTest()
        {
            if (Configuration == null)
            {
                lock (lockObject)
                {
                    var assemblies = new List <Assembly> {
                        typeof(InMemoryDatabaseTest).Assembly
                    };
                    var nHibernateModule = new NHibernateConfigurator(new SqliteInMemoryProvider())
                    {
                        CacheEnabled            = true,
                        ManuallyAddedAssemblies = assemblies
                    };
                    Configuration = nHibernateModule.GetConfiguration();

                    SessionFactory = Configuration.BuildSessionFactory();
                }
            }
            Session = SessionFactory.OpenFilteredSession(Kernel.Get <HttpContextBase>());
            Kernel.Bind <ISession>().ToMethod(context => Session);
            Kernel.Bind <IStatelessSession>()
            .ToMethod(context => SessionFactory.OpenStatelessSession(Session.Connection));

            new SchemaExport(Configuration).Execute(false, true, false, Session.Connection, null);

            SetupUser();


            CurrentSite = Session.Transact(session =>
            {
                var site = new Site {
                    Name = "Current Site", BaseUrl = "www.currentsite.com", Id = 1
                };
                CurrentRequestData.CurrentSite = site;
                session.Save(site);
                return(site);
            });

            CurrentRequestData.SiteSettings = new SiteSettings {
                TimeZone = TimeZoneInfo.Local.Id
            };

            CurrentRequestData.ErrorSignal = new ErrorSignal();

            Kernel.Unbind <IEventContext>();
            Kernel.Load(new ServiceModule());
            Kernel.Load(new SettingsModule(true));
            Kernel.Load(new FileSystemModule());
            Kernel.Load(new SiteModule());
            Kernel.Load(new GenericBindingsModule());
            Kernel.Unbind <IMessageTemplateProvider>();
            Kernel.Bind <IMessageTemplateProvider>().ToConstant(_messageTemplateProvider);
            Kernel.Rebind <IExternalUserSource>().ToConstant(A.Fake <IExternalUserSource>());
            _eventContext = new TestableEventContext(Kernel.Get <EventContext>());
            // this creates a dependency on the file system which we don't want
            _eventContext.Disable <CreateFolderOnAddMediaCategory>();
            Kernel.Rebind <IEventContext>().ToMethod(context => EventContext);
        }
Exemplo n.º 10
0
        public void GenerateCreationScript()
        {
            Configuration configuration = new NHibernateConfigurator().Configure();

            new SchemaExport(configuration)
            .SetDelimiter("\r\nGO\r\n")
            .Execute(true, false, false);
        }
Exemplo n.º 11
0
        public void GenerateCreationScript()
        {
            Configuration configuration = new NHibernateConfigurator().Configure();

            new SchemaExport(configuration)
                .SetDelimiter("\r\nGO\r\n")
                .Execute(true, false, false);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Load tabella con id specifico
        /// </summary>
        /// <param name="Id">Campo chiave</param>
        /// <returns></returns>
        public static Group GetGroup(long Id, string tagConnection = "DefaulConnection")
        {
            Group group = null;

            using (var session = NHibernateConfigurator.OpenSession(tagConnection))
            {
                group = session.QueryOver <Group>().Where(x => x.CdGroup == Id).SingleOrDefault();
            }

            return(group);
        }
Exemplo n.º 13
0
 public ActionResult Menu()
 {
     using (var session = NHibernateConfigurator.GetSession())
         using (var transaction = session.BeginTransaction())
         {
             var categorias = session.QueryOver <Categoria>()
                              .List <Categoria>();
             transaction.Commit();
             return(this.View("_Menu", categorias));
         }
 }
Exemplo n.º 14
0
 public ActionResult Eliminar(int id)
 {
     using (var session = NHibernateConfigurator.GetSession())
         using (var transaction = session.BeginTransaction())
         {
             var producto = session.Load <Producto>(id);
             session.Delete(producto);
             transaction.Commit();
             return(Content("OK"));
         }
 }
Exemplo n.º 15
0
        /// <summary>
        /// Salvataggio o aggiornamento tabella
        /// </summary>
        public virtual void Save()
        {
            using (var session = NHibernateConfigurator.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    session.SaveOrUpdate(this);

                    transaction.Commit();
                }
            }
        }
        public ActionResult Agregar(CarroCompras carroCompras, int id, [DefaultValue(1)] int cantidad, string regresarUrl)
        {
            using (var session = NHibernateConfigurator.GetSession())
                using (var transaction = session.BeginTransaction())
                {
                    var producto = session.Get <Producto>(id);
                    carroCompras.AgregarLinea(producto, cantidad);
                    transaction.Commit();
                }

            return(RedirectToAction("Mostrar", new { regresarUrl }));
        }
Exemplo n.º 17
0
        protected InMemoryDatabaseTest()
        {
            if (Configuration == null)
            {
                lock (lockObject)
                {
                    var assemblies = new List <Assembly> {
                        typeof(InMemoryDatabaseTest).Assembly
                    };
                    var nHibernateModule = new NHibernateConfigurator(new SqliteInMemoryProvider())
                    {
                        CacheEnabled            = true,
                        ManuallyAddedAssemblies = assemblies
                    };
                    Configuration = nHibernateModule.GetConfiguration();

                    SessionFactory = Configuration.BuildSessionFactory();
                }
            }
            Session = SessionFactory.OpenFilteredSession();
            Kernel.Bind <ISession>().ToMethod(context => Session);
            Kernel.Bind <IStatelessSession>().ToMethod(context => SessionFactory.OpenStatelessSession());

            new SchemaExport(Configuration).Execute(false, true, false, Session.Connection, null);

            SetupUser();


            CurrentSite = Session.Transact(session =>
            {
                var site = new Site {
                    Name = "Current Site", BaseUrl = "www.currentsite.com", Id = 1
                };
                CurrentRequestData.CurrentSite = site;
                session.Save(site);
                return(site);
            });

            CurrentRequestData.SiteSettings = new SiteSettings {
                TimeZone = TimeZoneInfo.Local.Id
            };

            CurrentRequestData.ErrorSignal = new ErrorSignal();

            Kernel.Unbind <IEventContext>();
            Kernel.Load(new ServiceModule());
            Kernel.Load(new SettingsModule(true));
            Kernel.Load(new FileSystemModule());
            Kernel.Load(new SiteModule());
            _eventContext = new TestableEventContext(Kernel.Get <EventContext>());
            Kernel.Rebind <IEventContext>().ToMethod(context => EventContext);
        }
Exemplo n.º 18
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);

            NHibernateConfigurator.Configure();
            ModelBinders.Binders.Add(typeof(CarroCompras),
                                     new CarroComprasModelBinder());
            DependencyConfigurator.Configure();
            HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
        }
        private static ISessionFactory GetSessionFactory(IServiceProvider serviceProvider, string connectionStringKey)
        {
            var basePath = Directory.GetParent(AppContext.BaseDirectory).FullName;

            var configuration = serviceProvider.GetService <IConfigurationRoot>();

            var dataSourceLocation = Path.GetFullPath(configuration.GetConnectionString(connectionStringKey), basePath);

            NHibernateConfigurator.DataSourceLocation = dataSourceLocation;

            NHibernateConfigurator.GetConfiguration(UniversityNHibernateConfigurator.GetAssembly());

            return(NHibernateConfigurator.GetSessionFactory());
        }
Exemplo n.º 20
0
 public ActionResult Editar(int id)
 {
     using (var session = NHibernateConfigurator.GetSession())
         using (var transction = session.BeginTransaction())
         {
             var producto   = session.Get <Producto>(id);
             var categorias = session.QueryOver <Categoria>()
                              .List <Categoria>();
             var viewModel =
                 new EditarProductoViewModel(producto, categorias);
             transction.Commit();;
             return(this.View(viewModel));
         }
 }
        private INHibernateConfigurator CreateNhConfigurator()
        {
            NHibernateConfigurator nhConfigurator = NHibernateConfigurator.Create(DatabaseEngine,
                                                                                  ConnectionInfo,
                                                                                  MappingInfo);
            IDictionary <string, string> additionalConfigProperties = NhConfigurationOverrideProperties ??
                                                                      new Dictionary <string, string>();

            //always use thread context to bind the current session as this makes sense in tests
            additionalConfigProperties[Environment.CurrentSessionContextClass] = "thread_static";

            nhConfigurator.AdditionalConfiguration(
                configs => configs.Properties.Merge(additionalConfigProperties));

            if (CustomConfiguration != null)
            {
                nhConfigurator.AdditionalConfiguration(CustomConfiguration);
            }

            return(nhConfigurator);
        }
Exemplo n.º 22
0
 public void InitTest()
 {
     m_sessionFactory = NHibernateConfigurator.GetSessionFactory(nameof(StaticTextUoWTest));
 }
 public DatabaseTestBase()
 {
     Configurator = new NHibernateConfigurator();
 }
Exemplo n.º 24
0
        private void ConfigureNHibernate(IKernel container)
        {
            var sessionFactory = NHibernateConfigurator.Configure(typeof(MainBCUnitOfWork).Assembly);

            container.Bind <ISessionFactory>().ToConstant(sessionFactory);
        }
Exemplo n.º 25
0
 protected virtual void endTestFixture()
 {
     NHibernateConfigurator.Close();
 }
Exemplo n.º 26
0
 public void InitTest()
 {
     m_sessionFactory = NHibernateConfigurator.GetSessionFactory(nameof(DictionaryScopeUoWTest));
 }
Exemplo n.º 27
0
 public void InitTest()
 {
     m_sessionFactory = NHibernateConfigurator.GetSessionFactory(nameof(CultureUoWTest));
 }