public async Task <MSSResult <RoleView> > GetPageByParm(RoleQueryParm parm) { MSSResult <RoleView> mRet = new MSSResult <RoleView>(); try { parm.page = parm.page == 0 ? 1 : parm.page; parm.rows = parm.rows == 0 ? Common.Const.PAGESIZE : parm.rows; parm.sort = string.IsNullOrWhiteSpace(parm.sort) ? "id" : parm.sort; parm.order = parm.order.ToLower() == "desc" ? "desc" : "asc"; mRet = await _RoleRepo.GetPageByParm(parm); int[] arrRoleID = mRet.data.Select(a => a.Id).ToArray(); List <RoleActions> lra = await _ActionRepo.GetActionByRoles(arrRoleID); foreach (var item in mRet.data) { List <ActionAll> actionAll = lra.Where(a => a.roleID == item.Id).ToList <ActionAll>(); //item.action_trees = ActionHelper.GetActionTree(actionAll); List <ActionTree> actiontree = ActionHelper.ConvertToTree(actionAll); item.action_trees = ActionHelper.BuildTreeRecursive(actiontree, 0); } mRet.code = (int)ErrType.OK; return(mRet); } catch (Exception ex) { mRet.code = (int)ErrType.SystemErr; mRet.msg = ex.Message; return(mRet); } }