public virtual Dictionary<string, object> GetRouteData(EPages page) { Dictionary<string, object> routeData = new Dictionary<string, object>(); routeData.Add("area", this.Area); routeData.Add("controller", this.Controller); routeData.Add("action", this.Action); routeData.Add("Namespaces", this.Namespaces); routeData.Add("pagesId",page.Id); var @params = page.PagesQueryString.ParseQueryString(); foreach (var param in @params) { routeData.Add(param.Key, param.Value); } return routeData; }
public void SavePagesHtmlContent(int pagesId, string htmlContent) { var pages = new EPages() { PagesHtmlContent = htmlContent }; _rep.Save(pages, p => p.Id == pagesId, p => new Columns(p.PagesHtmlContent)); _cacheService.RemoveByKey(CacheKey.Cms_Pages_All); _cacheService.RemoveByKey(CacheKey.Cms_Pages_Static_Html.GetFormat(pagesId)); }
/// <summary> /// 递归获取页面集合结构 /// </summary> /// <param name="root"></param> private void GetSubPagesListByRecursion(EPages root, List<EPages> list) { //获取下一级菜单 var children = GetAllPagesFromCache().Where(p => p.PagesParentId == root.Id).OrderByDescending(p => p.PagesOrderId).ToList(); if (children.Count > 0) { list.AddRange(children); foreach (var sub in children) { GetSubPagesListByRecursion(sub, list); } } }
/// <summary> /// 递归获取页面集合结构 /// </summary> /// <param name="root"></param> /// <param name="allPagesList"></param> private void GetSubPagesListByRecursion(EPages root, List<EPages> list, List<EPages> allPagesList) { //获取下一级菜单 var children = allPagesList.Where(p => p.PagesParentId == root.Id).ToList(); if (children.Count > 0) { list.AddRange(children); foreach (var sub in children) { GetSubPagesListByRecursion(sub, list, allPagesList); } } }
/// <summary> /// 递归获取页面树结构 /// </summary> /// <param name="root"></param> /// <param name="allPagesList"></param> private void GetPagesTreeByRecursion(EPages root, List<EPages> allPagesList) { //获取下一级菜单 var children = allPagesList.Where(p => p.PagesParentId == root.Id).OrderBy(p => p.PagesOrderId).ToList(); if (children.Count > 0) { root.Children = children; foreach (var sub in root.Children) { GetPagesTreeByRecursion(sub, allPagesList); } } }
/// <summary> /// 获取路由地址 /// </summary> /// <returns></returns> private string GetPageUrl(EPages page) { string url = page.PagesUrl; if (url.HasValue() && url.StartsWith("/")) { url = url.Substring(1); } return url; }
/// <summary> /// 获取路由域名 /// </summary> /// <returns></returns> private string GetDomain(EPages page) { return page.PagesDomain; }
/// <summary> /// 递归获取页面树结构 /// </summary> /// <param name="root"></param> /// <param name="allPagesCategorys"></param> private void GetPagesTreeByRecursion(EPages root) { //获取下一级菜单 var children = GetAllPagesFromCache().Where(p => p.PagesParentId == root.Id).OrderByDescending(p => p.PagesOrderId).ToList(); if (children.Count > 0) { root.Children = children; foreach (var sub in root.Children) { GetPagesTreeByRecursion(sub); } } }
/// <summary> /// 创建二级域名路由 /// </summary> /// <param name="page"></param> /// <returns></returns> private DomainRoute CreateDomainRoute(EPages page) { var pageHandler = Cdev.Infrastructure.CdevContainer.Ins.Resolve<BasePagesHandler>(page.PagesHandler); var route = new DomainRoute( this.GetDomain(page), this.GetPageUrl(page), new RouteValueDictionary(pageHandler.GetRouteData(page)) ); return route; }
/// <summary> /// 保存页面 /// </summary> /// <param name="page"></param> public void SavePages(EPages page) { _rep.Save(page, p => p.Id == page.Id); _cacheService.RemoveByKey(CacheKey.Cms_Pages_All); _cacheService.RemoveByKey(CacheKey.Cms_Pages_Static_Html.GetFormat(page.Id)); ReRegisterMapRoute(); }
/// <summary> /// 递归获取页面集合结构 /// </summary> /// <param name="pagesId"></param> public IList<EPages> GetSubPagesFromCache(int? pagesId) { List<EPages> list = new List<EPages>(); if (pagesId.HasValue) { EPages root = GetPagesByIdFromCache(pagesId.Value); GetSubPagesListByRecursion(root, list); return list; } else { EPages root = new EPages() { Id = pagesId ?? 0, PagesName = "页面" }; IList<EPages> allPagesList = GetAllPagesFromCache(); GetSubPagesListByRecursion(root, allPagesList.ToList()); return list; } }
/// <summary> /// 获取页面树结构 /// </summary> /// <returns></returns> public EPages GetPagesTreeByIdFromCache(int? pagesId) { if (pagesId.HasValue) { EPages root = GetPagesByIdFromCache(pagesId.Value); GetPagesTreeByRecursion(root); return root; } else { EPages root = new EPages() { Id = pagesId ?? 0, PagesName = "页面" }; IList<EPages> allPagesList = GetAllPagesFromCache(); GetPagesTreeByRecursion(root, allPagesList.ToList()); return root; } }
/// <summary> /// 添加页面 /// </summary> /// <param name="page"></param> public void AddPages(EPages page) { _rep.Add(page); _cacheService.RemoveByKey(CacheKey.Cms_Pages_All); ReRegisterMapRoute(); }