/// <summary> /// 获取相关菜单集合 /// </summary> /// <param name="ListMenuId"></param> /// <returns></returns> public List <MenuDtoView> GetMenuList(List <Guid> ListMenuId) { var result = base.GetEntityDtoList(t => ListMenuId.Contains(t.Id)); List <MenuDtoView> ListMenu = new List <MenuDtoView>(); //获取一级目录 var firstResult = result.Where(t => !t.ParentId.HasValue).OrderBy(t => t.Sort).ToList(); //去掉一级目录的数据 var DataResult = result.Where(t => t.ParentId.HasValue).ToList(); foreach (var item in firstResult) { MenuDtoView menuView = new MenuDtoView(); menuView = Mapper.Map <MenuDtoView>(item); var SecOrThreeMenuList = GetMenuList(item.Id, DataResult); if (SecOrThreeMenuList.Count > 0) { menuView.ListMenuDto = SecOrThreeMenuList; } ListMenu.Add(menuView); } return(ListMenu); }
/// <summary> /// 获取二级以及三级菜单 /// </summary> /// <param name="ParentId"></param> /// <param name="ListMenuDto"></param> /// <returns></returns> private List <MenuDtoView> GetMenuList(Guid ParentId, List <MenuDto> ListMenuDto) { List <MenuDtoView> List = new List <MenuDtoView>(); var SecListMenuDto = ListMenuDto.Where(t => t.ParentId == ParentId).OrderBy(t => t.Sort).ToList(); foreach (var item in SecListMenuDto) { MenuDtoView menuView = new MenuDtoView(); menuView = Mapper.Map <MenuDtoView>(item); var ThreeMenuDto = Mapper.Map <List <MenuDtoView> >(ListMenuDto.Where(t => t.ParentId == item.Id).OrderBy(t => t.Sort).ToList()); if (ThreeMenuDto.Count > 0) { menuView.ListMenuDto = ThreeMenuDto; } List.Add(menuView); } return(List); }