/// <summary> /// 生成导航菜单树状结构,转换菜单为导航菜单元素 /// </summary> /// <param name="menuInfos"></param> /// <returns></returns> public NavMenuBar GenerateNavMenuTree(List <MenuInfo> menuInfos) { try { NavMenuBar navMenuBar = new NavMenuBar(); // 抓取root 节点 foreach (MenuInfo menuInfo in menuInfos.Where(menu => menu.MenuParentID.ToLower().Equals("root")).OrderBy(menu => menu.MenuWeight)) { bool parentMenuExpand = false; NavMenuItem navMenuItem = new NavMenuItem { Name = menuInfo.MenuName, Title = menuInfo.MenuTitle, IconType = menuInfo.MenuIcon, Url = menuInfo.MenuComponent, Master = menuInfo.EnableMasterTemplate, Submenu = GenerateSubNavMenus(menuInfo, menuInfos, out parentMenuExpand), SubArrow = parentMenuExpand }; navMenuBar.Menu.Add(navMenuItem); } return(navMenuBar); } catch (Exception exception) { throw exception; } }
public WebAPIReponse GenNavMenuTree(UserNavMenuRequest userNavMenu) { try { MenuInfo mtsMenuInfo = new MenuInfo(); var userNavMenuInfo = _navMenuService.GetUserPermissionMenus(userNavMenu); if (userNavMenuInfo != null) { NavMenuBar currNavMenuBar = _navMenuService.GenerateNavMenuTree(userNavMenuInfo); return(new WebAPIReponse(HttpStatusCode.OK, "Success", currNavMenuBar)); } return(new WebAPIReponse(HttpStatusCode.InternalServerError, "Menu Not Found")); } catch (Exception exception) { return(new WebAPIReponse(HttpStatusCode.PreconditionFailed, "Precondition Failed", exception.ToString())); } }