Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }