public async Task <PagedList <ContactMessageDTO> > GetMessagesAsync(GetContactMessageQuery query) { // 搜索 var filter = Builders <ContactMessageDTO> .Filter.Empty; if (query.Name.IsPresent()) { var nameFilter = Builders <ContactMessageDTO> .Filter.Regex(x => x.Name, query.Name); filter = Builders <ContactMessageDTO> .Filter.And(filter, nameFilter); } if (query.Email.IsPresent()) { var emailFilter = Builders <ContactMessageDTO> .Filter.Regex(x => x.Email, query.Email); filter = Builders <ContactMessageDTO> .Filter.And(filter, emailFilter); } //// 排序 //if (query.OrderBy == 0) //{ // if (query.SortDirection == "asc") // { // fluent.SortBy(x => x.Name); // } // else if (query.SortDirection == "desc") // { // fluent.SortByDescending(x => x.Name); // } //} //else if (query.OrderBy == 2) //{ // if (query.SortDirection == "asc") // { // fluent.SortBy(x => x.CreatedOnUtc); // } // else if (query.SortDirection == "desc") // { // fluent.SortByDescending(x => x.CreatedOnUtc); // } //} // 输出数据 var fluent = DB.ContactMessages.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 <ContactMessageDTO>(total, query.PageSize, list)); }
public Task <PagedList <ContactMessageDTO> > GetMessagesAsync(string name, string email, int pageSize, int pageIndex) { var query = new GetContactMessageQuery { Name = name, Email = email, PageSize = pageSize, PageIndex = pageIndex }; return(ContactMessageDAL.GetMessagesAsync(query)); }