// Looking inside a folder
        public MediaTree(IFolder folder, int level, LibrariesManager libMgr)
        {
            this.root     = folder;
            this.libMgr   = libMgr;
            this.filterIn = true;
            if (level <= 0)
            {
                items   = new List <MediaContent>();
                folders = new List <MediaTree>();
                return;
            }

            if (this.root is Library)
            {
                items = libMgr.GetChildItems(root).Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live &&
                                                         i.Parent.Id == root.Id &&
                                                         i.FolderId == null &&
                                                         i.Visible).ToList();
                folders = libMgr.GetChildFolders(root).Where(f => f.ParentId == null).Select <IFolder, MediaTree>(f => new MediaTree(f, level - 1, libMgr)).ToList();
            }
            else
            {
                items = libMgr.GetChildItems(root).Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live &&
                                                         i.FolderId == root.Id &&
                                                         i.Visible).ToList();
                folders = libMgr.GetChildFolders(root).Where(f => f.ParentId == root.Id).Select <IFolder, MediaTree>(f => new MediaTree(f, level - 1, libMgr)).ToList();
            }
        }