Пример #1
0
 /// <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;
 }
Пример #2
0
        /// <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;
        }
Пример #3
0
        /// <summary>
        /// 删除一个节点,及其子节点
        /// </summary>
        /// <param name="nodeId">节点ID</param>
        public bool Delete(int nodeId)
        {
            int result = new DR_PageInfo().Delete(nodeId);

            return result >= 1;
        }
Пример #4
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;
 }