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); } }