public IEnumerable <ModuleElement> LoadByModuleId(string loginuser, int id) { _authoriseService.GetUserAccessed(loginuser); if (_authoriseService.ModuleElements.Count == 0) //用户没有任何资源 { return(new List <ModuleElement>()); } var modules = _authoriseService.ModuleElements.Where(u => u.ModuleId == id).OrderBy(u => u.Sort); return(modules); }
/// <summary> /// 根据部门ID得到进出库信息 /// </summary> public dynamic Load(string username, int orgId, int pageindex, int pagesize) { _authoriseService.GetUserAccessed(username); if (_authoriseService.Orgs.Count == 0) //用户没有任何可见机构 { return(new { total = 0, pageCurrent = pageindex }); } var orgIds = _authoriseService.Orgs.Select(u => u.Id).ToArray(); //用户可访问的机构ID var orgs = _orgRepository.GetSubWithOwn(orgId) //点击的节点与用户可访问的机构合并 .Where(u => orgIds.Contains(u.Id)) .Select(u => u.Id).ToArray(); var keys = _authoriseService.Resources.Select(r => r.Key); //用户可访问的资源的KEY列表 //由于库存Stock表开始没有设计资源有关的字段,暂时用User字段代替 Expression <Func <Stock, bool> > exp = u => orgs.Contains(u.OrgId) && (u.User == "" || keys.Contains(u.User)); var stocks = _repository.Find(pageindex, pagesize, "", exp); int total = _repository.GetCount(exp); return(new { total = total, list = stocks, pageCurrent = pageindex }); }
/// <summary> /// 加载一个节点下面的所有 /// </summary> public dynamic Load(string loginuser, int parentId, int pageindex, int pagesize) { _authoriseService.GetUserAccessed(loginuser); if (_authoriseService.Modules.Count == 0) //用户不能访问任何模块 { return(new { total = 0, list = new List <Module>(), pageCurrent = pageindex }); } var ids = GetSubIds(parentId); var query = _authoriseService.Modules.Where(u => parentId == 0 || ids.Contains(u.ParentId)); int total = query.Count(); var modules = query.OrderBy(u => u.CascadeId).Skip((pageindex - 1) * pagesize).Take(pagesize); return(new { total = total, list = modules, pageCurrent = pageindex }); }
/// <summary> /// 加载用户一个节点下面的一个或全部Resources /// </summary> public dynamic Load(string username, int categoryId, int pageindex, int pagesize) { _authoriseService.GetUserAccessed(username); if (_authoriseService.Resources.Count == 0) //用户没有任何资源 { return(new { total = 0, pageCurrent = pageindex }); } var subIds = GetSubOrgIds(categoryId); var query = _authoriseService.Resources.Where(u => categoryId == 0 || subIds.Contains(u.CategoryId)); var Resources = query.Skip((pageindex - 1) * pagesize).Take(pagesize); int total = query.Count(); return(new { total = total, list = Resources, pageCurrent = pageindex }); }