/// <summary> /// 根据查询条件获取公告分页列表 /// </summary> public PagedResultDto <NoticeListDto> GetPagedNotices(GetNoticeInput input) { var query = from a in noticeservice.GetAll() join b in userservice.GetAll() on a.CreatorUserId equals b.Id into c from d in c.DefaultIfEmpty() select new NoticeListDto { Id = a.Id, Title = a.Title, Content = a.Content, CreatorUserName = d.DisplayName, Enabled = a.Enabled, StartTime = a.StartTime, EndTime = a.EndTime, CreationTime = a.CreationTime }; query = query.WhereIf(!string.IsNullOrEmpty(input.FilterText), t => t.CreatorUserName.Contains(input.FilterText) || t.Title.Contains(input.FilterText)); //TODO:根据传入的参数添加过滤条件 var Notices = query.OrderByDescending(t => t.CreationTime).PageBy(input).ToList(); var NoticeListDto = Notices.MapTo <List <NoticeListDto> >(); return(new PagedResultDto <NoticeListDto>(query.Count(), NoticeListDto)); }
private IQueryable <Notice> GetFilteredQuery(GetNoticeInput input) { var query = QueryableExtensions.WhereIf(_noticeRepository.GetAll() .Include(x => x.User), !input.Filter.IsNullOrWhiteSpace(), u => u.Title.Contains(input.Filter) || u.Message.Contains(input.Filter)); return(query); }
public ActionResult GetDataList(string keyword, int type = 0, int pIndex = 1) { ViewBag.pageName = "GetDataList"; var input = new GetNoticeInput() { FilterText = keyword, SkipCount = (pIndex - 1) * PageSize, MaxResultCount = PageSize }; var pagedata = noticeservice.GetPagedNotices(input); GetPageData(pagedata.TotalCount); return(PartialView("Shared/DataList", pagedata.Items)); }
public async Task <PagedResultDto <NoticeListDto> > GetNotice(GetNoticeInput input) { var query = GetFilteredQuery(input); var userCount = await query.CountAsync(); var notices = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var noticesListDto = ObjectMapper.Map <List <NoticeListDto> >(notices); return(new PagedResultDto <NoticeListDto>( userCount, noticesListDto )); }