Example #1
0
        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);
            }
        }