internal IObjectContainer GetContainer(string databaseAlias, HttpContext context) { if (String.IsNullOrEmpty(databaseAlias)) { throw new ArgumentNullException("databaseAlias"); } if (context == null) { throw new ArgumentNullException("context"); } var completeContextClientId = GetCompleteCurrentClientId(databaseAlias); var currentClient = context.Items[completeContextClientId] as IObjectContainer; if (currentClient != null) { Debug.WriteLine(String.Format("GetContainer (database: {0}) from Context.Items", databaseAlias)); return(currentClient); } var dataBaseData = DB4OConfigSection.GetInstance().Databases.GetDatabase(databaseAlias); if (dataBaseData == null) { return(null); } currentClient = GetContainerFromConfig(dataBaseData, context); context.Items.Add(completeContextClientId, currentClient); return(currentClient); }
private void OpenContainersIfMandatory(HttpContext context) { var dataBases = DB4OConfigSection.GetInstance().Databases; if (dataBases == null || dataBases.Count == 0) { return; } foreach (DB4ODatabaseElement database in dataBases) { if (!database.OpenContainerOnBeginRequest) { continue; } GetContainer(database.Alias, context); } }