private static void AddMenu(StringBuilder buff, Navigation nav, IList<Navigation> all) { buff.Append("<li>"); buff.Append("<a href=\""); buff.Append(string.IsNullOrEmpty(nav.Url) ? "#" : nav.Url); buff.Append("\""); if (!string.IsNullOrEmpty(nav.Icon)) { buff.Append(" class=\"icon "); buff.Append(nav.Icon); buff.Append("\""); } buff.Append(">"); buff.Append(nav.Name); buff.Append("</a>"); IList<Navigation> subNavs = nav.GetChildren(all).ToOrderList(); if (subNavs.Count > 0) { buff.Append("<ul>"); foreach (Navigation subNav in subNavs) { AddMenu(buff, subNav, all); } buff.Append("</ul>"); } buff.Append("</li>"); }
/// <summary> /// 存储分类 /// </summary> /// <param name="session">数据库会话</param> /// <param name="category">导航分类</param> /// <param name="parentId">导航分类的上级序号</param> private void SaveNavigationContainer(Session session, NavigationCategory category, long parentId) { if (string.IsNullOrEmpty(category.Name)) throw new Exception("Category的Name属性不能为空,请检查nav_container.xml文件"); var nav = session.Load<Navigation>(m => m.Name.Equals(category.Name)); if (nav != null) throw new Exception("Category的Name属性已被使用,请检查nav_container.xml文件"); nav = new Navigation { Id = GetNavIdByName(session, category.Name), Name = category.Name, Type = NavigationType.Category, ParentId = parentId, OrderId = category.OrderId, CreatedAt = DateTime.Now, CreatedBy = "SYSTEM", AuthCode = Navigation.NotCheck }; if (!session.Create(nav)) { throw new Exception(string.Format("保存导航分类失败:Name - {0}, ParentId - {1}", category.Name, parentId)); } // 如果是叶子分类,放入导航分类字典备查 if (category.Categories.Count == 0) _navCagotryDict.Add(nav.Name, nav.Id); foreach (var subCategory in category.Categories) { SaveNavigationContainer(session, subCategory, nav.Id); } }
private long SaveNavigation(Session session, PriviledgeAttribute priAttr, long parentId, string area, string controller, string action) { if (priAttr == null) return DefaultParentId; var nav = session.Load<Navigation>(m => m.Name.Equals(priAttr.Name) && m.ParentId.Equals(parentId)); if (nav != null) return nav.Id; nav = new Navigation { Id = GetNavIdByName(session, priAttr.Name), Name = priAttr.Name, Type = priAttr.IsMenu ? NavigationType.Module : NavigationType.Action, Url = GetUrl(area, controller, action), ParentId = parentId, OrderId = priAttr.Position, CreatedAt = DateTime.Now, CreatedBy = "SYSTEM", AuthCode = priAttr.NotCheck ? Navigation.NotCheck : Navigation.ShouldCheck, Status = priAttr.NotCheck ? 1 : 0 }; if (session.Create(nav)) { return nav.Id; } throw new Exception(string.Format("保存导航失败:Name - {0}, ParentId - {1}", priAttr.Name, parentId)); }
private long SaveNavigation(Session session, ModuleAttribute module, long parentId, long moduleOrderId, string minorIcon = null) { if (module == null || string.IsNullOrEmpty(module.Name)) return parentId; var nav = session.Load<Navigation>(m => m.Name.Equals(module.Name) && m.ParentId.Equals(parentId)); if (nav != null) return nav.Id; nav = new Navigation { Id = GetNavIdByName(session, module.Name), Name = module.Name, Type = module.IsHideMenu ? NavigationType.Action : NavigationType.Module, ParentId = parentId, OrderId = moduleOrderId > 0 ? moduleOrderId : module.Position, CreatedAt = DateTime.Now, CreatedBy = "SYSTEM", AuthCode = module.NotCheck ? Navigation.NotCheck : Navigation.ShouldCheck, Icon = module.Icon ?? minorIcon }; if (session.Create(nav)) { return nav.Id; } throw new Exception(string.Format("保存导航失败:Name - {0}, ParentId - {1}", module.Name, parentId)); }
/// <summary> /// 保存模块的功能分类 /// </summary> /// <param name="session"></param> /// <param name="category"></param> /// <param name="parentId"></param> /// <returns></returns> private long SaveNavigation(Session session, CategoryAttribute category, long parentId) { if (category == null || string.IsNullOrEmpty(category.Name)) return parentId; var nav = session.Load<Navigation>(m => m.Name.Equals(category.Name) && m.ParentId.Equals(parentId)); if (nav != null) return nav.Id; nav = new Navigation { Id = GetNavIdByName(session, category.Name), Name = category.Name, Type = NavigationType.Category, ParentId = parentId, OrderId = category.Position, CreatedAt = DateTime.Now, CreatedBy = "SYSTEM" }; if (session.Create(nav)) { return nav.Id; } throw new Exception(string.Format("保存导航失败:Name - {0}, ParentId - {1}", category.Name, parentId)); }