private int getPageOrder(int idToSearch)
        {
            List<PageItem> pages = new PagesDB().GetPagesFlat(this.PortalSettings.PortalID);

            while (pages.Count > 0)
            {
                PageItem page = pages.First<PageItem>();
                pages.Remove(page);
                if (page.ID == idToSearch)
                {
                    return page.Order;
                }
            }
            return -1;
        }
        public JsonResult GetTreeModule(string result, int pageId)
        {
            List<PageItem> pages = new PagesDB().GetPagesFlat(this.PortalSettings.PortalID);
            var page = pages.First(p => p.ID == pageId);

            JsTreeModel[] child = getChildrenTree(page);
            List<JsTreeModel> child2 = new List<JsTreeModel>();
            var panelist = result.Split('+').ToList();
            var panetopage = ModelServices.GetPageModules(pageId);
            var lowerpane = panelist.ConvertAll(d => d.ToLower());
            var i = 0;
            foreach (var pane in panelist)
            {
                JsTreeModel[] childm = getModuleToPane(pane, pageId);
                JsTreeModel nodem = new JsTreeModel
                    {
                        data = pane,
                        attr = new JsTreeAttribute {id = "pjson_pane_" + i, rel= "folder"},
                        children = childm
                    };
                child2.Add(nodem);
                i++;
            }
            // add other pane.
            foreach (var pane in panetopage)
            {
                if (!lowerpane.Contains(pane.Key))
                {
                    JsTreeModel[] childm = getModuleToPane(pane.Key, pageId);
                    JsTreeModel nodem = new JsTreeModel
                    {
                        data = pane.Key + "  [Not present in current layout]",
                        attr = new JsTreeAttribute { id = "pjson_pane_" + i, rel = "folder2" },
                        children = childm
                    };
                    child2.Add(nodem);
                    i++;
                }
                    panelist.Add(pane.Key);
            }
            var childlist = child.ToList();
            foreach (var childmod in child2)
            {
                childlist.Add(childmod);
            }
            child = childlist.ToArray<JsTreeModel>();
            return Json(child);
        }