Ejemplo n.º 1
0
        /// <summary>
        /// 普通用户菜单
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public IEnumerable <FunctionModel> GetRoleMenu(RoleFunctionFilter request)
        {
            //Mapper.CreateMap<SYS_Menu, Menu>();
            IEnumerable <FunctionModel> response = null;
            var menus = Mapper.DynamicMap <IEnumerable <Menu> >(unitOfWork.GetRepository <SYS_Menu>().dbSet.Where(o => !o.IsDeleted && o.RoleID == request.RoleID)).OrderBy(o => o.OrderSeq).ToList();

            if (menus.Count <= 0)
            {
                return(response);
            }
            var menuIds = menus.Select(m => m.MenuID).ToArray();
            //获取子菜单
            var functions =
                (from m in unitOfWork.GetRepository <SYS_MenuFunction>().dbSet.Where(o => menuIds.Contains(o.MenuID.Value))
                 join f in unitOfWork.GetRepository <SYS_Function>().dbSet.Where(o => o.IsIndependent) on m.FunctionID equals f.FunctionID
                 select new FunctionModel
            {
                FunctionID = f.FunctionID,
                FunctionNo = f.FunctionNo,
                FunctionName = m.MenuName,
                ModuleName = f.ModuleName,
                IsIndependent = f.IsIndependent,
                Url = f.Url,
                MenuID = m.MenuID.Value,
                OrderSeq = m.OrderSeq
            });

            foreach (var menu in menus)
            {
                response = functions.Where(o => o.MenuID == menu.MenuID).Distinct().OrderBy(o => o.OrderSeq).ToList();
            }
            return(response);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 超级管理菜单
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public IEnumerable <FunctionModel> GetRoleFunction(RoleFunctionFilter request)
        {
            var modules = unitOfWork.GetRepository <SYS_Function>().dbSet.Where(o => o.IsIndependent && !o.IsDeleted).Distinct().OrderBy(o => o.OrderSeq);

            //Mapper.CreateMap<SYS_Function, FunctionModel>();
            //return Mapper.Map<IEnumerable<FunctionModel>>(modules.ToList());
            return(Mapper.DynamicMap <IEnumerable <FunctionModel> >(modules.ToList()));
        }
Ejemplo n.º 3
0
        public IHttpActionResult Query()
        {
            var request = new RoleFunctionFilter {
                RoleID = SecurityHelper.CurrentPrincipal.RoleId, IsSuperAdmin = SecurityHelper.CurrentPrincipal.IsSurperAdmin
            };

            if (SecurityHelper.CurrentPrincipal.IsSurperAdmin)
            {
                var response = service.GetRoleFunction(request).ToList();
                return(Ok(response));
            }
            else
            {
                var response = service.GetRoleMenu(request).ToList();
                return(Ok(response));
            }
        }