/// <summary> /// 加载用户一个节点下面的一个或全部Resources /// </summary> public dynamic Load(string username, Guid categoryId, int page, int rows) { var service = _factory.Create(username); if (!service.GetResourcesQuery().Any()) //用户没有任何资源 { return(new { total = 0, page = 0, records = 0 }); } var subIds = _categoryRepository.GetSubIds(categoryId); var query = service.GetResourcesQuery().Where(u => categoryId == Guid.Empty || (u.CategoryId != null && subIds.Contains(u.CategoryId.Value))); int total = query.Count(); if (total <= 0) { return new { total = 0, page = 0, records = 0 } } ; var listVms = new List <dynamic>(); var resources = query.OrderBy(u => u.SortNo).Skip((page - 1) * rows).Take(rows); foreach (var element in resources) { var accessed = _categoryRepository.FindSingle(u => u.Id == element.CategoryId); listVms.Add(new { element.Id, element.Name, element.Key, element.SortNo, element.CategoryId, element.Status, CategoryName = accessed != null ? accessed.Name : "" }); } return(new { records = total, total = (int)Math.Ceiling((double)total / rows), rows = listVms, page = page }); }
public IEnumerable <ModuleElement> LoadByModuleId(string loginuser, Guid id) { var service = _factory.Create(loginuser); if (!service.GetModuleElementsQuery().Any()) //用户没有任何资源 { return(new List <ModuleElement>()); } var modules = service.GetModuleElementsQuery().Where(u => u.ModuleId == id).OrderBy(u => u.Sort); return(modules); }
/// <summary> /// 加载一个节点下面的所有 /// </summary> public dynamic Load(string loginuser, Guid parentId, int pageindex, int pagesize) { var service = _factory.Create(loginuser); if (!service.GetModulesQuery().Any()) //用户不能访问任何模块 { return(new { total = 0, records = 0, page = pageindex }); } var ids = GetSubIds(parentId); var query = service.GetModulesQuery().Where(u => parentId == Guid.Empty || (u.ParentId != null && ids.Contains(u.ParentId.Value))); int total = query.Count(); var modules = query.OrderBy(u => u.CascadeId).Skip((pageindex - 1) * pagesize).Take(pagesize); return(new { records = total, total = Math.Ceiling((double)total / pagesize), rows = modules, page = pageindex }); }
/// <summary> /// 根据部门ID得到进出库信息 /// </summary> public dynamic Load(string username, Guid orgId, int pageindex, int pagesize) { var service = _factory.Create(username); if (service.Orgs.Count == 0) //用户没有任何可见机构 { return(new { total = 0, records = 0, page = pageindex }); } var orgIds = service.Orgs.Select(u => u.Id).ToArray(); //用户可访问的机构ID var orgs = _orgRepository.GetSubOrgs(orgId) //点击的节点与用户可访问的机构合并 .Where(u => orgIds.Contains(u.Id)) .Select(u => u.Id).ToArray(); var keys = service.Resources.Select(r => r.Key); //用户可访问的资源的KEY列表 Expression <Func <Stock, bool> > exp = u => u.OrgId != null && orgs.Contains(u.OrgId.Value) && (u.Viewable == "" || keys.Contains(u.Viewable)); var stocks = _repository.Find(pageindex, pagesize, "", exp); int total = _repository.GetCount(exp); return(new { records = total, total = (int)Math.Ceiling((double)total / pagesize), rows = stocks, page = pageindex }); }