BoC.Persistence.DefaultSetupTasks.AutoNhibernateConfigurator.Execute C# (CSharp) Method

Execute() public method

public Execute ( ) : void
return void
        public void Execute()
        {
            var orm = ConfigurationManager.AppSettings["BoC.Persistence.Orm"];
            if (orm != null && !orm.Equals("nhibernate", StringComparison.InvariantCultureIgnoreCase))
                return;

            if (!dependencyResolver.IsRegistered<ISessionFactory>())
            {
                IPersistenceConfigurer db = null;
                foreach (ConnectionStringSettings connectionString in ConfigurationManager.ConnectionStrings)
                {
                    if (!String.IsNullOrEmpty(connectionString.Name) && connectionString.Name.EndsWith("nhibernate", StringComparison.InvariantCultureIgnoreCase))
                    {
                        string providerName = connectionString.ProviderName ?? "System.Data.SqlClient";

                        if (providerName.IndexOf("sqlite", StringComparison.InvariantCultureIgnoreCase) >= 0)
                        {
                            db = NHibernateConfigHelper.GetDefaultSQLiteConfig(connectionString.Name);
                        }
                        else
                        {
                            db = NHibernateConfigHelper.GetDefaultSqlServerConfig(connectionString.Name);
                        }
                        break;
                    }
                }
                if (db == null)
                {
                    throw new Exception("Could not find a connectionstring that ends with 'nhibernate'. If you want to configure your own db connection, you should register an IPersistenceConfigurer");
                }

                var nhconfig = NHibernateConfigHelper.SetupAutoMapperForEntities(db, dependencyResolver);
                var sessionFactory = nhconfig.BuildSessionFactory();
                //dependencyResolver.RegisterInstance<Configuration>(nhconfig);
                dependencyResolver.RegisterInstance<ISessionFactory>(sessionFactory);
                if (!"false".Equals(ConfigurationManager.AppSettings["BoC.Persistence.Nhibernate.SchemaUpdate"], StringComparison.InvariantCultureIgnoreCase))
                    new SchemaUpdate(nhconfig).Execute(true, true);

            }

            if (!dependencyResolver.IsRegistered<ISessionManager>())
            {
                //IoC.RegisterSingleton<ISessionManager, CurrentContextSessionManager>();
                dependencyResolver.RegisterSingleton<ISessionManager, DataContextSessionManager>();
            }

            if (!dependencyResolver.IsRegistered<IDataContext>())
            {
                dependencyResolver.RegisterType<IDataContext, NHibernateDataContext>();
            }
        }
AutoNhibernateConfigurator