Пример #1
0
        protected override void Context()
        {
            base.Context();

            IDictionary <string, string> properties = new Dictionary <string, string>
            {
                { "connection.driver_class", "NHibernate.Driver.SQLite20Driver" },
                { "dialect", "NHibernate.Dialect.SQLiteDialect" },
                { "connection.provider", "NHibernate.Connection.DriverConnectionProvider" },
                { "connection.connection_string", @"Data Source=:memory:;Version=3;New=True;" },
                { "connection.release_mode", "on_close" }
            };

            NHibernateConfig config
                = new NHibernateConfig(() =>
            {
                var cfg = new Configuration().Configure()
                          .SetProperties(properties);
                cfg.AddMappingsFromAssembly(typeof(WidgetMap).Assembly);
                return(cfg);
            }, _repositoryFactory, _uowStorage);

            UnitOfWork.Configure(config);
            UnitOfWork.Start(() =>
            {
                wasExecuted = true;
            });
        }
Пример #2
0
        protected override void Context()
        {
            base.Context();

            _config = new NHibernateConfig(_repositoryFactory, _uowStorage);
            UnitOfWork.Configure(_config);
        }
Пример #3
0
        public static void AddPatientToDatabase(string firstName, string lastName, params DateTime[] appointmentDate)
        {
            PatientEntity patient = new PatientEntity
            {
                FirstName = firstName,
                LastName  = lastName
            };

            foreach (DateTime item in appointmentDate)
            {
                var appointment = new AppointmentEntity
                {
                    Date = item
                };
                patient.AddAppointment(appointment);
            }

            ISessionFactory sessionForTests = NHibernateConfig.CreateSessionFactory(Database.TEST_DB_NAME);

            using (ISession session = sessionForTests.OpenSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    session.SaveOrUpdate(patient);
                    transaction.Commit();
                }
            }
        }
Пример #4
0
        public Dictionary <int, Configuration> CreateAll(NHibernateConfig cofig)
        {
            Dictionary <int, Configuration> configs = new Dictionary <int, Configuration>();

            foreach (Connection connection in cofig.Connections)
            {
                //1. Create an empty configuration object
                Configuration cfg = new Configuration();


                //3. if not rooted, assume path from base directory
                if (Path.IsPathRooted(_hibernateConfig) == false)
                {
                    _hibernateConfig = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, connection.File);
                }

                //4. Try creating the configuration if the file exists
                if (File.Exists(_hibernateConfig))
                {
                    cfg.Configure(new XmlTextReader(_hibernateConfig));
                    _hibernateConfig = "";
                }
                else
                {
                    ExceptionFactory.DataAccessException
                    .Add.Message(Resources.CannotFindHibernateConfigFileException)
                    .Add.Arguments(_hibernateConfig)
                    .Raise();
                }

                configs.Add(connection.TenantId, cfg);
            }

            return(configs);
        }
Пример #5
0
        public void Integrated_add_new_patient()
        {
            // Arrange
            string  firstName = "Dave";
            string  lastName  = "Grohl";
            Patient patient   = new Patient
            {
                FirstName = firstName,
                LastName  = lastName
            };

            // Act
            _patientService.AddNewPatient(patient);

            // Assert
            ISessionFactory       sessionForTests = NHibernateConfig.CreateSessionFactory(Database.TEST_DB_NAME);
            IList <PatientEntity> patients;

            using (ISession session = sessionForTests.OpenSession())
            {
                patients = session.QueryOver <PatientEntity>().Fetch(x => x.Appointments).Eager.List();
            }

            Assert.IsNotNull(patients);
            Assert.IsNotEmpty(patients);
            Assert.IsTrue(patients.Count == 1);

            PatientEntity result = patients.First();

            StringAssert.Contains(result.FirstName, firstName);
            StringAssert.Contains(result.LastName, lastName);
        }
Пример #6
0
        protected override void Context()
        {
            base.Context();

            IDictionary <string, string> properties = new Dictionary <string, string>
            {
                { "connection.driver_class", "NHibernate.Driver.SQLite20Driver" },
                { "dialect", "NHibernate.Dialect.SQLiteDialect" },
                { "connection.provider", "NHibernate.Connection.DriverConnectionProvider" },
                {
                    "connection.connection_string",
                    @"Data Source=:memory:;Version=3;New=True;"
                },
                { "connection.release_mode", "on_close" },
                { "proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" }
            };

            NHibernateConfig config = new NHibernateConfig(properties, _repositoryFactory, _uowStorage, typeof(Foo).Assembly);

            UnitOfWork.Configure(config);
            UnitOfWork.Start(() =>
            {
                wasExecuted = true;
            });
        }
Пример #7
0
        public static IList <AppointmentEntity> GetAllAppointments()
        {
            ISessionFactory sessionForTests = NHibernateConfig.CreateSessionFactory(Database.TEST_DB_NAME);

            using (ISession session = sessionForTests.OpenSession())
            {
                return(session.QueryOver <AppointmentEntity>().List());
            }
        }
Пример #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            NHibernateConfig.IniciarNHibernate();
            var schemaUpdate = new SchemaUpdate(NHibernateConfig.NHIBERNATE_CONFIGURATION);

            schemaUpdate.Execute(true, true);
        }
Пример #9
0
        public static IList <PatientEntity> GetPatientFromDatabase(string firstName, string lastName)
        {
            ISessionFactory sessionForTests = NHibernateConfig.CreateSessionFactory(Database.TEST_DB_NAME);

            using (ISession session = sessionForTests.OpenSession())
            {
                return(session.QueryOver <PatientEntity>().Where(k => k.FirstName == firstName && k.LastName == lastName)
                       .Fetch(x => x.Appointments).Eager.TransformUsing(Transformers.DistinctRootEntity).List());
            }
        }
Пример #10
0
        protected override void Context()
        {
            base.Context();

            NHibernateConfig config = new NHibernateConfig(@".\hibernate.cfg.xml", _repositoryFactory, _uowStorage);

            UnitOfWork.Configure(config);
            UnitOfWork.Start(() =>
            {
                wasExecuted = true;
            });
        }
Пример #11
0
        private Dictionary <int, Configuration> CreateConfiguration(NHibernateConfig config)
        {
            if (_configurationBuilder == null)
            {
                ExceptionFactory.DataAccessException
                .Wrap <InvalidOperationException>()
                .AddMessage("Configuration Builder Instance has not been set")
                .Raise();
            }


            return(_configurationBuilder.BuildAll(config));
        }
Пример #12
0
        protected void Application_Start()
        {
            var container = CreateUnityContainer();

            AreaRegistration.RegisterAllAreas();

            NHibernateConfig.ConfigureDatabase(container);
            UnityConfig.RegisterComponents(container);

            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
        protected override void Context()
        {
            base.Context();

            NHibernateConfig config = new NHibernateConfig(_repositoryFactory, _uowStorage);

            UnitOfWork.Configure(config);
            UnitOfWork.Start(() =>
            {
                Transaction.Begin();
                NHibernateConfig.GenerateSchema();
                Transaction.Commit();
                wasExecuted = true;
            });
        }
Пример #14
0
        protected override void Context()
        {
            base.Context();

            FileStream       fs     = new FileStream(@".\hibernate.cfg.xml", FileMode.Open, FileAccess.Read);
            NHibernateConfig config = new NHibernateConfig(fs, _repositoryFactory, _uowStorage);

            UnitOfWork.Configure(config);
            fs.Dispose();

            UnitOfWork.Start(() =>
            {
                wasExecuted = true;
            });
        }
Пример #15
0
        protected override void Context()
        {
            base.Context();

            foo = new MockFooRepo();

            ObjectFactory.Initialize(
                factory => factory
                .ForRequestedType <IFooRepository>().TheDefault.IsThis(foo));

            UnitOfWork.Start(() =>
            {
                Transaction.Begin();
                NHibernateConfig.GenerateSchema();
                Repository <IFooRepository> .Do.Something();
                Transaction.Commit();
            });
        }
        private void OnSaveConfigurationCommand(object parameter)
        {
            if (NHibernateConfig == null)
            {
                Notify("Config isn't loaded", NotificationType.Error);
                return;
            }

            ConfirmDialog dialog = new ConfirmDialog()
            {
                HeaderText  = "Artist remove confirmation",
                MessageText = "Do you really want to save configuration? Backup will be create automatically"
            };

            if (dialog.ShowDialog() == true)
            {
                //backup old config
                DirectoryInfo dir = new DirectoryInfo(BackupDir);
                if (!dir.Exists)
                {
                    dir.Create();
                }

                string newName  = "backup" + DateTime.Now.ToBinary().ToString() + '-' + NHibernateConfig.FileName;
                string fullPath = BackupDir + "\\" + newName;
                File.Copy(NHibernateConfig.FileName, fullPath, true);

                if (NHibernateConfig.Save(NHibernateConfig.FileName))
                {
                    Notify(
                        String.Format("Configuration has been successfully saved. Created backup {0}", newName),
                        NotificationType.Success);

                    TestNewNHibernateConfiguration();
                }
                else
                {
                    Notify("Can't save configuration. Unexpected error", NotificationType.Error);
                }
            }
        }
Пример #17
0
		protected override void Context()
		{
			base.Context();

			UnitOfWork.Start(() =>
			{
				Transaction.Begin();
				NHibernateConfig.GenerateSchema();

				ObjectFactory.Initialize(
				factory => factory
				    .ForRequestedType<IFooRepository>()
				    .TheDefaultIsConcreteType<MockFooRepo>());

				Repository<IFooRepository>.Do.Something();

				Assert.IsTrue(_uowStorage.HasTransactionManager);

				Transaction.Commit();
			});

		}
        protected override void Context()
        {
            base.Context();

            //DepCon.ClearRegistrations();
            fooRepo = new MockFooRepo();
            //DepCon.RegisterInstance<IFooRepository>(fooRepo);
            ObjectFactory.Initialize(
                factory => factory
                .ForRequestedType <IFooRepository>().TheDefault.IsThis(fooRepo));

            IDictionary <string, string> properties = new Dictionary <string, string>
            {
                { "connection.driver_class", "NHibernate.Driver.SQLite20Driver" },
                { "dialect", "NHibernate.Dialect.SQLiteDialect" },
                { "connection.provider", "NHibernate.Connection.DriverConnectionProvider" },
                {
                    "connection.connection_string",
                    @"Data Source=FooDb.s3db"
                },
                { "connection.release_mode", "on_close" },
                { "proxyfactory.factory_class", "NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" }
            };

            NHibernateConfig config = new NHibernateConfig(properties, _repositoryFactory, _uowStorage, typeof(Foo).Assembly);

            UnitOfWork.Configure(config);
            UnitOfWork.Start(() =>
            {
                Transaction.Begin();
                Repository <IFooRepository> .Do.Something();
                Transaction.Rollback();
            });
            UnitOfWork.Start(() =>
            {
                foo = fooRepo.CheckForIt();
            });
        }
Пример #19
0
 public System.Collections.Generic.Dictionary <int, Configuration> CreateAll(NHibernateConfig config)
 {
     throw new System.Exception("The method or operation is not implemented.");
 }
Пример #20
0
        public void EstablishConnection()
        {
            #region Old Code
            //NHibernateConfig config = NHibernateConfig.Load(AppDomain.CurrentDomain.BaseDirectory + "Connections.xml");
            //if (config == null)
            //{
            //    _configuration = CreateConfiguration();
            //    EstablishConnection(_configuration);
            //}
            //else
            //{
            //    _configurations = CreateConfiguration(config);
            //    EstablishConnection(_configurations);
            //}
            #endregion

            #region Test Code
            ////Test Module
            //IPersistencyService _persistencyService = ObjectBuilder.Get<IPersistencyService>();

            ////Test1: GetAlldataBases
            //List<IDataBase> dbs = _persistencyService.GetAllDataBases();

            ////Test2: CreateDataBases
            //DataBase dbase = new DataBase();
            //dbase.DBConfiguration = "dsgsdgsg";
            //dbase.DBType = EnumDB.Sql;
            //dbase.Name = "Dev3";
            //int dbId = _persistencyService.CreateDataBase(dbase);

            ////Test3: UpdateDataBases
            //DataBase dbaseUpdate = new DataBase();
            //dbaseUpdate.Id = 5;
            //dbaseUpdate.DBConfiguration = "dsgsdgsg";
            //dbaseUpdate.DBType = EnumDB.Sql;
            //dbaseUpdate.Name = "DevUpdate";
            //_persistencyService.UpdateDataBase(dbaseUpdate);

            ////Test4: CreateTenantDataBase
            //DataBaseTenant dataBaseTenant = new DataBaseTenant();
            //dataBaseTenant.TenantId = 4;
            //dataBaseTenant.DataBaseId = 2;
            //_persistencyService.CreateTenantDataBase(2,4);

            ////Test5: UpdateTenantDataBase
            //dataBaseTenant = new DataBaseTenant();
            //dataBaseTenant.TenantId = 4;
            //dataBaseTenant.DataBaseId = 2;
            //_persistencyService.UpdateTenantDataBase(3,4);
            #endregion

            if (File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TenantDBHibernatecfg.xml")))
            {
                if (_configurationBuilder == null)
                {
                    ExceptionFactory.DataAccessException
                    .Wrap <InvalidOperationException>()
                    .AddMessage("Configuration Builder Instance has not been set")
                    .Raise();
                }

                //1.Get DataBase List
                ICollection <DataBase> listDataBases = GetDataBaseList();

                //2.Get DataBaseTenant List
                ICollection <DataBaseTenant> listDataBaseTenant = GetTenantDataBaseList();

                //3.EstablishConnection
                _configurations = CreateConfiguration(listDataBases);
                EstablishConnection(_configurations, listDataBaseTenant);
            }
            else
            {
                NHibernateConfig config = NHibernateConfig.Load(AppDomain.CurrentDomain.BaseDirectory + "Connections.xml");
                if (config != null)//EstablishConnection By Connections.xml
                {
                    _configurations = CreateConfiguration(config);
                    EstablishConnection(_configurations);
                }
                else//Establish By Default Connection
                {
                    _configuration = CreateConfiguration();
                    EstablishConnection(_configuration);
                }
            }
        }