public List <int> GetDeptChildByDeptId(int deptId) { if (UserRepository == null) { UserRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <Entity.SysUser> >(); } if (DepartRepository == null) { DepartRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <Entity.SysDepartments> >(); } var all = DepartRepository.GetQuery().ToList(); var dept = all.FirstOrDefault(o => o.DeptId == deptId); var list = new List <Entity.SysDepartments>(); SetChilds(dept, all, list); var deptIds = list.Select(o => o.DeptId).ToList(); return(deptIds); }
public List <SysMenuLimitModel> GetUserMenus(string userId) { var list = new List <SysMenuLimitModel>(); if (UserRepository == null) { UserRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysUser> >(); } if (MenuRepository == null) { MenuRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysMenus> >(); } if (RoleDataRepository == null) { RoleDataRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysRoleData> >(); } if (RoleRepository == null) { RoleRepository = NinjectObject.GetFromMVC <DAL.BaseRepository <SysRoles> >(); } var user = UserRepository.Find(o => o.UserId == userId); if (user != null) { if (user.IsSuper) { list = MenuRepository.GetQuery(o => o.Status).OrderBy(o => o.SortOrder).Select(y => new SysMenuLimitModel() { Id = y.Id, MenuId = y.MenuId, PMenuId = y.PMenuId, SortOrder = y.SortOrder, Status = y.Status, Title = y.Title, URL = y.URL, LimitIdStr = "-1" }).ToList(); } else if (!user.RoleIds.IsNullOrEmpty()) { var rids = user.RoleIds.ToIntArray(); var queryRole = RoleRepository.GetQuery(); var queryMenu = MenuRepository.GetQuery(); var queryData = RoleDataRepository.GetQuery(); var query = from x in queryData join y in queryMenu on x.MenuId equals y.MenuId join z in queryRole on x.RoleId equals z.RoleId where y.Status && z.Status && rids.Contains(x.RoleId) && x.HasSelected orderby x.SortOrder select new SysMenuLimitModel() { Id = y.Id, MenuId = y.MenuId, PMenuId = y.PMenuId, Status = y.Status, Title = y.Title, URL = y.URL, SortOrder = x.SortOrder, LimitIdStr = z.Limitids }; list = query.ToList(); } } return(list); }