/// <summary> /// 添加一个菜单节点,返回节点ID /// </summary> /// <param name="text">节点文字</param> /// <param name="url">节点链接</param> /// <param name="parentId">父节点ID,根目录ID为0</param> public bool AddNode(string text, string url, int parentId, int queue) { if (text == string.Empty) { return(false); } MR_PageInfo model = new MR_PageInfo(); model.PName = text; model.ParentID = parentId; model.Queue = queue; if (url.Length > 0) { model.PUrl = url; model.IsUrl = true; } else { model.PUrl = string.Empty; model.IsUrl = false; } int result = new DR_PageInfo().Add(model); if (result > 0) { StaticFunctions.ClearServerCache(); StaticFunctions.ClearClientPageCache(); return(true); } return(false); }
/// <summary> /// 从缓存中取页面ID,如果缓存不存在,会先填充 /// </summary> /// <param name="pageurl"></param> /// <returns></returns> public int GetPageId(string pageurl) { pageurl = pageurl.ToLower(); if (pageurl.IndexOf("rnd=") > 0) { pageurl = pageurl.Substring(0, pageurl.IndexOf("rnd=") - 1); } string key = "TMPPAGEINFO"; string linkkey = key + pageurl; if (HttpContext.Current.Cache[linkkey] != null) { return(HttpContext.Current.Cache[linkkey].GetInt(0, false)); } Dictionary <string, int> dic; if (HttpContext.Current.Cache[key] == null) { dic = new Dictionary <string, int>(); IList <MR_PageInfo> pinfo = new DR_PageInfo().GetList(); foreach (MR_PageInfo info in pinfo) { if (!string.IsNullOrEmpty(info.PUrl)) { if (!dic.ContainsKey(info.PUrl.ToLower())) { dic.Add(info.PUrl.ToLower(), info.PID); } } } HttpContext.Current.Cache.Insert(key, dic, null, DateTime.UtcNow.AddHours(1), TimeSpan.Zero); } else { dic = (Dictionary <string, int>)HttpContext.Current.Cache[key]; } //找到库中匹配的 IEnumerable <string> res = dic.Keys.Where(u => pageurl.StartsWith(u)); string dbPageUrl = string.Empty; //匹配中url最长的 foreach (string tmp in res) { if (tmp.Length > dbPageUrl.Length) { dbPageUrl = tmp; } } if (!string.IsNullOrEmpty(dbPageUrl)) { int pageid = dic[dbPageUrl]; HttpContext.Current.Cache.Insert(linkkey, pageid); return(pageid); } ; return(0); }
/// <summary> /// 更新一个目录项 /// </summary> /// <param name="text">说明文字</param> /// <param name="url">链接地址</param> /// <param name="nodeId">节点ID</param> public bool UpdateNode(string text, string url, int nodeId, int queue, bool defShowChild) { int result = new DR_PageInfo().Update(text, url, queue, nodeId, defShowChild); if (result == 0) { return(false); } return(true); }
/// <summary> /// 删除一个节点,及其子节点 /// </summary> /// <param name="nodeId">节点ID</param> public bool Delete(int nodeId) { int result = new DR_PageInfo().Delete(nodeId); return(result >= 1); }