public async Task <PagedList <TestimonialMessageDTO> > GetMessagesAsync(GetTestimonialMessageQuery query) { // 搜索 var filter = Builders <TestimonialMessageDTO> .Filter.Empty; if (query.Name.IsPresent()) { var nameFilter = Builders <TestimonialMessageDTO> .Filter.Regex(x => x.Name, query.Name); filter = Builders <TestimonialMessageDTO> .Filter.And(filter, nameFilter); } if (query.Approved.IsNotNull()) { var approvedFilter = Builders <TestimonialMessageDTO> .Filter.Eq(x => x.Approved, query.Approved.Value); filter = Builders <TestimonialMessageDTO> .Filter.And(filter, approvedFilter); } // 输出数据 var fluent = DB.TestimonialMessages.Find(filter); var total = await fluent.CountDocumentsAsync().ConfigureAwait(false); fluent = fluent.SortByDescending(x => x.CreatedOnUtc); if (query.PageSize > 0 && query.PageIndex > 0) { fluent = fluent .Skip((query.PageIndex - 1) * query.PageSize) .Limit(query.PageSize); } var list = await fluent.TryToListAsync().ConfigureAwait(false); return(new PagedList <TestimonialMessageDTO>(total, query.PageSize, list)); }
public Task <PagedList <TestimonialMessageDTO> > GetMessagesAsync(string name, bool?approved, int pageSize, int pageIndex) { //bool? approved; //if (User.Identity.IsAuthenticated) //{ // approved = null; //} //else //{ // approved = true; //} var query = new GetTestimonialMessageQuery { Name = name, Approved = approved, PageSize = pageSize, PageIndex = pageIndex }; return(TestimonialMessageDAL.GetMessagesAsync(query)); }