コード例 #1
0
        public IDatabaseConnectionFactory FindOrCreateDatabaseConnectionFactory(string databaseId)
        {
            IDatabaseConnectionFactory foundDatabaseConnectionFactory;

            // guard clause - already mapped
            if (DatabaseConnectionFactoryMap.TryGetValue(databaseId, out foundDatabaseConnectionFactory))
            {
                return(foundDatabaseConnectionFactory);
            }

            IDatabaseConnectionFactory databaseConnectionFactory;

            try
            {
                ISessionFactory sessionFactory = BaseConfiguration.BuildSessionFactory();
                databaseConnectionFactory = new DatabaseConnectionFactory(sessionFactory);
                DatabaseConnectionFactoryMap[databaseId] = databaseConnectionFactory;

                return(databaseConnectionFactory);
            }

            catch (Exception ex)
            {
                databaseConnectionFactory = new NullDatabaseConnectionFactory();

                return(databaseConnectionFactory);
            }
        }