public FlowPageResult <FlowDef> Page(FlowKeywordPageInfo dto) { var user = HttpContext.GetFlowLoginUserFromToken(); var filter = bf.Eq(x => x.School, user.School) & bf.In(x => x.ApproveType, new[] { ApproveType.All, ApproveType.Continuous, ApproveType.Or }); if (!string.IsNullOrWhiteSpace(dto.SearchKey)) { filter &= bf.Where(x => x.Name.Contains(dto.SearchKey)); } var query = coll.Find(filter); var total = query.CountDocuments(); var list = query.SortBy(x => x.Name).Skip((dto.PageIndex - 1) * dto.PageSize).Limit(dto.PageSize).ToList(); return(FlowPageResult.Wrap(total, list)); }
public FlowPageResult <object> Page(FlowKeywordPageInfo dto) { var user = HttpContext.GetFlowLoginUserFromToken(); var filter = bf.Eq(x => x.School, user.School); if (!string.IsNullOrWhiteSpace(dto.SearchKey)) { filter &= bf.Where(x => x.User.Name.Contains(dto.SearchKey)); } var query = coll.Find(filter); var total = query.CountDocuments(); var list = query.Project(x => new { x.Id, x.User, DepartmentsStr = string.Join(',', x.Departments.Select(u => u.Name)), }).SortBy(x => x.User.Name).Skip((dto.PageIndex - 1) * dto.PageSize).Limit(dto.PageSize).ToList(); return(FlowPageResult.WrapDynamic(total, list)); }