Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }