Exemplo n.º 1
0
        public static IUnitOfWorkFactory CreateUnitOfWorkFactory(
            IInterceptUnitOfWork interceptor       = null,
            IAuditConfiguration auditConfiguration = null,
            IDateTime dateTime       = null,
            IUserContext userContext = null)
        {
            var logger = new ConsoleLogger {
                DebugLoggingIsEnabled = false
            };

            var databaseConfigurer = new SqlServerDatabaseConfigurer()
                                     .ConnectionStringName("Persistence");

            var mapperConfigurer = new ByCodeMapperConfigurer()
                                   .RegisterEntitiesFromAssembly(Assembly.GetExecutingAssembly());

            var configuration = new NHibernateConfiguration(logger);

            configuration.RegisterConfigurer(databaseConfigurer);
            configuration.RegisterConfigurer(mapperConfigurer);
            configuration.RegisterConfigurer(new ProxyConfigurer <CastleProxyFactoryFactory>());

            IInterceptUnitOfWork[] interceptors = null;

            if (interceptor != null)
            {
                interceptors = new[] { interceptor };
            }

            return(new NHibernateUnitOfWork.Factory(configuration, interceptors, auditConfiguration, dateTime, userContext, logger));
        }
Exemplo n.º 2
0
        public void ShouldMap()
        {
            var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory();

            using (var session = sessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var createdUser = new User {
                        GooglePlusId = "some id?", Name = "user name"
                    };
                    var playlist = new Playlist("boss songs")
                    {
                        User = createdUser
                    };
                    createdUser.AddPlaylist(playlist);

                    session.Save(createdUser);
                    session.Flush();
                    session.Clear();

                    var savedUser = session.Get <User>(createdUser.Id);
                    Assert.That(savedUser.Id, Is.Not.EqualTo(Guid.Empty));

                    Assert.That(savedUser.GooglePlusId, Is.EqualTo(createdUser.GooglePlusId));
                    Assert.That(savedUser.Name, Is.EqualTo(createdUser.Name));
                    Assert.That(savedUser.Playlists, Has.Count.EqualTo(2));

                    Assert.That(session.Query <Playlist>().Where(p => p.User == savedUser).ToList(), Has.Count.EqualTo(2));

                    transaction.Rollback();
                }
            }
        }
Exemplo n.º 3
0
        public void InitNHib()
        {
            //configure logging
            //if (!log.Logger.Repository.Configured)
            //{
            //    XmlConfigurator.Configure();
            //}

            string configFile = "hibernate.cfg.xml";
            var    connString = Configuration.GetConnectionString("SampleAppDB");


            var conn1 = new NHibConfigOptions()
            {
                ConnectionName   = "DEV3",
                ConnectionString = connString,
                FluentAssemblies = new List <Assembly> {
                    Assembly.GetAssembly(typeof(Department))
                }
            };

            NHibernateConfiguration.Initialize(new List <NHibConfigOptions>()
            {
                conn1
            });
        }
Exemplo n.º 4
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

            services.AddIdentity <ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders();

            // Add application services.
            services.AddTransient <IEmailSender, EmailSender>();
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddSingleton <NHibernateSessionStorage, NHibernateSessionStorage>();
            //services.AddTransient(x => (NHibernate.ISession)x.GetRequiredService<NHibernateSessionStorage>().RetrieveSession());
            services.AddScoped(x => NHibernateConfiguration.CreateAndOpenSession());
            //services.AddTransient<TodoRepository, TodoRepository>();
            services.AddScoped <TransactionAttribute>();

            IEnumerable <Type> repositories = Assembly.GetExecutingAssembly().GetTypes().Where(IsRepository);

            foreach (Type type in repositories)
            {
                services.AddTransient(type, type);
            }

            services.AddMvc(options => { options.UseHtmlEncodeModelBinding(); });
            services.AddSingleton <ITempDataProvider, CookieTempDataProvider>();
            services.AddSession();
            services.AddMemoryCache();
            services.AddDistributedMemoryCache();
            InitializeNHibernate();
        }
        public NHibernateConfiguration CreateShard(string alias)
        {
            var configuration = new NHibernateConfiguration();

            _configurations[alias] = configuration;
            return(configuration);
        }
 protected override void Load(ContainerBuilder builder)
 {
     base.Load(builder);
     var nhConfiguration = new NHibernateConfiguration(ConnectionString);
     builder.Register(c => nhConfiguration.GetSessionFactory()).As<ISessionFactory>().SingleInstance();
     builder.Register(c => c.Resolve<ISessionFactory>().OpenSession()).As<ISession>().InstancePerHttpRequest();
 }
        public static ContainerBootstrapper Bootstrap()
        {
            var container = new WindsorContainer().
                            Install(FromAssembly.This());

            container.Register(Component.For <IDocumentMapper>().ImplementedBy <DocumentMapper>());


            //container.AddFacility<FactorySupportFacility>();
            container.Register(Component.For <ISessionFactory>()
                               .UsingFactoryMethod(() => NHibernateConfiguration.CreateSessionFactory()));

            container.Register(Component.For <ISession>()
                               .UsingFactoryMethod(kernel => kernel.Resolve <ISessionFactory>().OpenSession())
                               .LifestylePerWebRequest());

            container.Register(Component.For <ITransaction>()
                               .UsingFactoryMethod(kernel => kernel.Resolve <ISession>().BeginTransaction())
                               .LifestylePerWebRequest());

            container.Register(Component.For <IUserRepository>()
                               .ImplementedBy <UserRepository>()
                               .LifeStyle.Transient);

            container.Register(Component.For <IDocumentRepository>()
                               .ImplementedBy <DocumentRepository>()
                               .LifeStyle.Transient);

            container.Register(Component.For <IUnitOfWork>()
                               .ImplementedBy <UnitOfWork>()
                               .LifeStyle.Transient);

            return(new ContainerBootstrapper(container));
        }
Exemplo n.º 8
0
 /// <summary>
 /// Initializes NHibernate. Adds the mappings based on the assembly, initializes the session factory and opens
 /// a long-running global session
 /// </summary>
 private void InitializeNHibernate()
 {
     NHibernateConfiguration.Configure();
     NHibernateConfiguration.AddAssembly(typeof(Entity).Assembly);
     new SchemaUpdate(NHibernateConfiguration).Execute(false, true);
     SessionFactory = NHibernateConfiguration.BuildSessionFactory();
     GlobalSession  = SessionFactory.OpenSession();
 }
Exemplo n.º 9
0
        private SessionFactory()
        {
            var connectionStringName = ConfigurationManager.AppSettings["Database"];
            var connectionString     = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

            factory = NHibernateConfiguration.CreateSessionFactory(
                MySQLConfiguration.Standard.ConnectionString(connectionString));
        }
        protected override void Load(ContainerBuilder builder)
        {
            base.Load(builder);
            var nhConfiguration = new NHibernateConfiguration(ConnectionString);

            builder.Register(c => nhConfiguration.GetSessionFactory()).As <ISessionFactory>().SingleInstance();
            builder.Register(c => c.Resolve <ISessionFactory>().OpenSession()).As <ISession>().InstancePerHttpRequest();
        }
Exemplo n.º 11
0
 public void SetUp()
 {
     _configurationService = new FakeConfigurationService();
     _configurationService.ConnectionString = @"Data Source=tcp:[database-server];Initial Catalog=[database];User ID=[database user];Password=[database password];";
     _dbConfiguration = new NHibernateConfiguration(_configurationService);
     _sessionFactory  = _dbConfiguration.CreateSessionFactory();
     _repository      = new NHibernateRepository(_sessionFactory.OpenSession());
 }
        public void ShouldMap()
        {
            var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory();

            using (var session = sessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var createdUser = new User {
                        GooglePlusId = "some id?", Name = "user name"
                    };
                    session.Save(createdUser);

                    var playlist2 = new Playlist("users second playlist")
                    {
                        User     = createdUser,
                        Sequence = 200,
                    };

                    var video = new Video
                    {
                        Id             = "some id",
                        Author         = "video author",
                        Duration       = 90,
                        HighDefinition = true,
                        Title          = "my video",
                    };
                    session.Save(video);
                    var playlistItem = new PlaylistItem
                    {
                        Cid      = "cid",
                        Playlist = playlist2,
                        Video    = video,
                        Sequence = 300,
                        Title    = "My playlist item",
                    };

                    playlist2.AddItem(playlistItem);

                    session.Save(playlist2);

                    session.Flush();
                    session.Clear();

                    var savedPlaylistItem = session.Get <PlaylistItem>(playlistItem.Id);

                    Assert.That(savedPlaylistItem.Title, Is.EqualTo("My playlist item"));
                    Assert.That(savedPlaylistItem.Id, Is.Not.EqualTo(Guid.Empty));
                    Assert.That(savedPlaylistItem.Sequence, Is.EqualTo(300));

                    Assert.That(savedPlaylistItem.Video, Is.EqualTo(playlistItem.Video));

                    transaction.Rollback();
                }
            }
        }
Exemplo n.º 13
0
        public static void Configure(ContainerBuilder builder)
        {
            //var session = NHibernateConfiguration.OpenSession ();
            //builder.Register (c => {
            //	return NHibernateConfiguration.OpenSession ();
            //}).As <ISession>().InstancePerLifetimeScope ();

            builder.Register(c => NHibernateConfiguration.OpenSession()).As <ISession>();

            builder.RegisterType <MyInfrastructureService> ().AsImplementedInterfaces();
        }
Exemplo n.º 14
0
        public RespositoryTestBase()
        {
            NHibernateConfiguration.Init(
                SQLiteConfiguration.Standard.UsingFile("test_GetOrganized"),
                //MsSqlConfiguration.MsSql2008.ConnectionString(
                //builder => builder.Server("localhost").Database("test_GetOrganized").TrustedConnection()),
                RebuildDatabase
                );

            session = NHibernateConfiguration.CreateAndOpenSession();
        }
Exemplo n.º 15
0
 public void FixtureSetUp()
 {
     //ConfigurationManager.ConnectionStrings.Add ();
     foreach (ConnectionStringSettings str in ConfigurationManager.ConnectionStrings)
     {
         Console.WriteLine("{0}: {1}", str.Name, str.ConnectionString);
     }
     ConfigurationManager.ConnectionStrings.Add(new ConnectionStringSettings("DefaultConnection", "Server=localhost;Database=koshiyam;Uid=uniuser;Pwd=unipass;"));
     _session = NHibernateConfiguration.OpenSession();
     _schema  = new SchemaExport(NHibernateConfiguration.NHConfiguration);
 }
Exemplo n.º 16
0
 public UnitOfWork(ISession session)
 {
     if (session != null)
     {
         _session         = session.IsOpen ? session : throw new ObjectDisposedException(nameof(session));
         _isPassedSession = true;
     }
     else
     {
         _session = NHibernateConfiguration.OpenSession();
     }
 }
Exemplo n.º 17
0
 public void BeforeEach()
 {
     Scope = Container.BeginLifetimeScope();
     try {
         Controller = Scope.Resolve <TController> ();
     } catch (Exception ex) {
         Console.WriteLine(ex);
     }
     Session            = NHibernateConfiguration.OpenSession();
     Controller.Request = new System.Net.Http.HttpRequestMessage();
     Controller.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
 }
Exemplo n.º 18
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var sessionFactory = NHibernateConfiguration.CreateFactory();

            ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(sessionFactory));
            ModelBinders.Binders.Add(typeof(Cart), new CartModelBinder());
        }
Exemplo n.º 19
0
        protected void Application_Start()
        {
            log4net.Config.XmlConfigurator.Configure();

            AreaRegistration.RegisterAllAreas();
            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            DependencyResolverConfig.SetDependencyResolver();
            NHibernateConfiguration.BuildSessionFactory();
        }
Exemplo n.º 20
0
        protected override void ConfigureContainer()
        {
            base.ConfigureContainer();

            Container.Configure(cfg => {
                cfg.For <IEmailService>().Use <SmtpEmailService>();
                cfg.For <ISessionFactory>().Singleton().Use(() => NHibernateConfiguration.Factory());
                cfg.For <IMessageModule>().Singleton().Use <NHibernateMessageModule>();
                cfg.For <INHibernateSessionProvider>().Use <NHibernateMessageModule>();
                cfg.For <ISession>().Use(ctx => ctx.GetInstance <INHibernateSessionProvider>().CurrentSession);
                //cfg.For(typeof(ISagaPersister<>)).Singleton().Use(typeof(InMemorySagaPersister<>));
                cfg.For(typeof(ISagaPersister <>)).Use(typeof(NHibernateSagaPersister <>));
            });
        }
Exemplo n.º 21
0
        public void Init()
        {
            ConfigurationManager.ConnectionStrings.Add(
                new ConnectionStringSettings("DefaultConnection", "Server=localhost;Database=koshiyam;Uid=uniuser;Pwd=unipass;")
                );
            Session = NHibernateConfiguration.OpenSession();


            var builder = new ContainerBuilder();

            builder.RegisterApiControllers(Assembly.GetAssembly(typeof(Startup)));
            AutofacInfrastructureConfiguration.Configure(builder);
            AutofacDomainConfiguration.Configure(builder);
            Container = builder.Build();
        }
Exemplo n.º 22
0
        /// <summary>
        /// Load your modules or register your services here!
        /// </summary>
        /// <param name="kernel">The kernel.</param>
        private static void RegisterServices(IKernel kernel)
        {
            ISessionFactory factory = NHibernateConfiguration.BuildSessionFactory();

            kernel.Bind <ISessionFactory>()
            .ToConstant(factory)
            .InSingletonScope();

            kernel.Bind <ISession>()
            .ToMethod(x => x.Kernel.Get <ISessionFactory>().OpenSession())
            .InRequestScope();

            //The first and last filter to run for each NHibernateController action
            kernel.BindFilter <NHibernateTransactionFilter>(FilterScope.Action, 0)
            .When((ctx, a) => ctx.Controller is NHibernateController);
        }
Exemplo n.º 23
0
        public ISessionFactory BuildSessionFactory()
        {
            if (IsConnectedToDatabase && _dataProviderInfo != null)
            {
                _configuration = new Configuration()
                                 .SetProperty(Environment.Dialect, _dataProviderInfo.NHibernateDialect)
                                 .SetProperty(Environment.ConnectionDriver, _dataProviderInfo.NHibernateConnectionDriver)
                                 .SetProperty(Environment.ConnectionString, Connection.ConnectionString)
                                 .AddAssembly(ApplicationProperties.PokerHandMappingAssemblyName)
                                 .AddAssembly(ApplicationProperties.DatabaseSetupMappingAssemblyName);

                return(NHibernateConfiguration.BuildSessionFactory());
            }

            return(null);
        }
Exemplo n.º 24
0
        public void ShouldMap()
        {
            var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory();

            using (var session = sessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    var createdUser = new User {
                        GooglePlusId = "some id?", Name = "user name"
                    };

                    session.Save(createdUser);

                    var playlist2 = new Playlist("users second playlist")
                    {
                        User     = createdUser,
                        Sequence = 200,
                    };

                    var playlistItem = new PlaylistItem
                    {
                        Cid      = "cid",
                        Playlist = playlist2,
                        Video    = new Video(),
                        Sequence = 200,
                    };

                    playlist2.AddItem(playlistItem);

                    var playlistId = session.Save(playlist2);

                    session.Flush();
                    session.Clear();

                    var savedPlaylist = session.Get <Playlist>(playlistId);

                    Assert.That(savedPlaylist.Title, Is.EqualTo("users second playlist"));
                    Assert.That(savedPlaylist.Id, Is.Not.EqualTo(Guid.Empty));
                    Assert.That(savedPlaylist.Sequence, Is.EqualTo(200));

                    Assert.That(savedPlaylist.Items, Has.Exactly(1).EqualTo(playlistItem));

                    transaction.Rollback();
                }
            }
        }
Exemplo n.º 25
0
        private void CompareSchema(string subSetConnectionString, params INHibernateConfigurer[] configurers)
        {
            var superSetConnectionString = ConfigurationManager.ConnectionStrings["Persistence"].ConnectionString;

            SqlServerSchema.Prepare(subSetConnectionString);

            var configuration = new NHibernateConfiguration(new ConsoleLogger {
                DebugLoggingIsEnabled = false
            });

            foreach (var configurer in configurers)
            {
                configuration.RegisterConfigurer(configurer);
            }

            configuration.CreateSchema();

            SqlServerSchema.AssertContained(new ConsoleLogger(), superSetConnectionString, subSetConnectionString, false);
        }
        protected void Application_Start()
        {
            #region MVC

            GlobalConfiguration.Configure(WebApiConfig.Register);

            WebApiFilterConfig.RegisterGlobalFilters(GlobalConfiguration.Configuration.Filters);

            #endregion

            #region Logging

            Environment.SetEnvironmentVariable("APPLICATION_PHYSICAL_PATH", HostingEnvironment.ApplicationPhysicalPath);

            Log.Logger = new LoggerConfiguration().ReadFrom.AppSettings().CreateLogger();

            #endregion

            #region NHibernate

            NHibernateConfiguration.Initialize(typeof(UserMap).Assembly, "Refugee", "web");

            #endregion

            #region Unity

            UnityConfig.Initialize();

            #endregion

            #region Object-Object Mapping

            Mapper.Initialize();

            #endregion

            #region Validators

            ValidatorOptions.CascadeMode = CascadeMode.StopOnFirstFailure;

            #endregion
        }
Exemplo n.º 27
0
        private void InitializeNHibernate()
        {
            if (!wasNHibernateInitialized)
            {
                lock (lockObject)
                {
                    if (!wasNHibernateInitialized)
                    {
                        NHibernateConfiguration.Init(
                            SQLiteConfiguration.Standard.UsingFile("test_GetOrganized"),
                            //MsSqlConfiguration.MsSql2008.ConnectionString(
                            //builder => builder.Server("localhost").Database("test_GetOrganized").TrustedConnection()),
                            RebuildDatabase
                            );

                        wasNHibernateInitialized = true;
                    }
                }
            }
        }
Exemplo n.º 28
0
        public void ShouldMap()
        {
            var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory();

            using (var session = sessionFactory.OpenSession())
            {
                using (var transaction = session.BeginTransaction())
                {
                    new PersistenceSpecification <Video>(session)
                    .CheckProperty(v => v.Author, "author")
                    .CheckProperty(v => v.Duration, 90)
                    .CheckProperty(v => v.HighDefinition, true)
                    .CheckProperty(v => v.Id, "some id")
                    .CheckProperty(v => v.Title, "title")
                    .VerifyTheMappings();

                    transaction.Rollback();
                }
            }
        }
Exemplo n.º 29
0
 public void Setup()
 {
     try
     {
         var sessionFactory =
             NHibernateConfiguration.CreateSessionFactory(SQLiteConfiguration.Standard.InMemory().ShowSql(),
                                                          NHibernateConfigurationConfigurationOptions.None);
         Assert.IsNotNull(sessionFactory);
         session = sessionFactory.OpenSession();
         var config = NHibernateConfiguration.Config;
         new SchemaExport(config).Execute(false, true, false, session.Connection, null);
     }
     catch (FluentConfigurationException e)
     {
         Assert.Fail(e.Message + Environment.NewLine +
                     "inner: " + e.InnerException?.Message + e.InnerException?.ToString() + Environment.NewLine +
                     "potential reasons: " + string.Join(";", e.PotentialReasons) + Environment.NewLine +
                     "e stacktrace: " + e.StackTrace);
     }
 }
Exemplo n.º 30
0
        public void ShouldMap()
        {
            var sessionFactory = new NHibernateConfiguration().Configure().BuildSessionFactory();

            using (var session = sessionFactory.OpenSession())
            {
                using (session.BeginTransaction())
                {
                    var sampleOccurenceTime = DateTime.Today;

                    new PersistenceSpecification <Error>(session)
                    .CheckProperty(e => e.LineNumber, 1)
                    .CheckProperty(e => e.Message, "testmessage")
                    .CheckProperty(e => e.OperatingSystem, "operating system")
                    .CheckProperty(e => e.TimeOccurred, sampleOccurenceTime)
                    .CheckProperty(e => e.Url, "url")
                    .CheckProperty(e => e.Architecture, "astrological")
                    .VerifyTheMappings();
                }
            }
        }
Exemplo n.º 31
0
        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config"));

            Configuration nhCfg = null;

            using (var sf = NHibernateConfiguration.BuildSessionFactory(cfg =>
            {
                cfg.DataBaseIntegration(x =>
                {
                    x.ConnectionProvider <NHibernate.Connection.DriverConnectionProvider>();
                    x.Dialect <NHibernate.Dialect.MsSql2012Dialect>();
                    x.Driver <NHibernate.Driver.SqlClientDriver>();
                    x.ConnectionString = connectionString;
                    //x.LogSqlInConsole = true;
                    x.LogFormattedSql = true;
                    x.KeywordsAutoImport = NHibernate.Cfg.Hbm2DDLKeyWords.AutoQuote;
                });
                cfg.SetProperty(NHibernate.Cfg.Environment.DefaultSchema, "dbo");
            }, "../../Schemas", cfg => nhCfg = cfg))
            {
                Console.WriteLine("Connection: " + connectionString);

                if (Confirm("Connection looks good?"))
                {
                    if (Confirm("Drop and Create New Tables?"))
                    {
                        new SchemaExport(nhCfg).Create(true, true);
                    }

                    if (Confirm("Generate Test Data?"))
                    {
                        CreateTestData(sf);
                    }
                }
            }

            Console.WriteLine("Press Any Key to Exit");
            Console.ReadKey();
        }
Exemplo n.º 32
0
        public void FixtureSetup()
        {
            var connectionString = ConfigurationManager.ConnectionStrings["GlossaryDataSource"].ConnectionString;
            using (IAnnouncer announcer = new TextWriterAnnouncer(Console.Out))
            {
                IRunnerContext migrationContext = new RunnerContext(announcer)
                {
                    Connection = connectionString,
                    Database = "SqlServer2008",
                    Target = Assembly.GetAssembly(typeof(NHibernateConfiguration)).FullName
                };

                new TaskExecutor(migrationContext).Execute();
            }

            var nhConfiguration = new NHibernateConfiguration(connectionString);
            _sessionFactory = nhConfiguration.GetSessionFactory();
            _session = _sessionFactory.OpenSession();
            _repository = new GlossaryRepository(_sessionFactory.OpenSession());
        }
Exemplo n.º 33
0
        public static void Main(string[] args)
        {
            var nhc = new NHibernateConfiguration();

            nhc.CreateSessionFactory();
        }