public virtual async Task <ActionResult> ListAjax(ArticleSearchRequest request) { var viewModel = await _articleService.GetPagedListAsync(request); if (viewModel.Articles == null || !viewModel.Articles.Any()) { return(Content("no-more-info")); } return(PartialView(MVC.Article.Views._ListAjax, viewModel)); }
/// <summary> /// 分页获取 /// for admin /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <JsonResultModel <ArticleInfo> > GetPageList(ArticleSearchRequest request) { var exp = Expressionable.Create <ArticleInfo>().AndIF(request.IsPublished.HasValue, it => it.IsPublished == request.IsPublished); if (string.IsNullOrEmpty(request.StartTime)) { request.StartTime = "1970-01-01"; } if (string.IsNullOrEmpty(request.EndTime)) { request.EndTime = DateTime.MaxValue.ToString(); } exp.AndIF(true, it => it.CreateTime >= request.StartTime.ObjToDate() && it.CreateTime <= request.EndTime.ObjToDate()); return(await base.GetPageList(request, exp.ToExpression())); }
public async Task <ArticleListViewModel> GetPagedListAsync(ArticleSearchRequest request) { var articles = _articles.Where(a => a.ApplicantId == request.ApplicantId) .Include(a => a.CreatedBy) .Include(a => a.ModifiedBy) .AsNoTracking() .OrderByDescending(a => a.PublicatedOn) .AsQueryable(); var selectedArticles = articles.ProjectTo <ArticleViewModel>(_mappingEngine); var resultsToSkip = (request.PageIndex - 1) * 5; var query = await selectedArticles .Skip(() => resultsToSkip) .Take(5) .ToListAsync(); return(new ArticleListViewModel { SearchRequest = request, Articles = query }); }
public async Task <JsonResultModel <ArticleInfo> > GetPageList([FromQuery] ArticleSearchRequest request) { return(await _articleBusiness.GetPageList(request)); }
public GetArticlesAction(ArticleSearchRequest searchRequest, bool isFeed = false) => (SearchRequest, IsFeed) = (searchRequest, isFeed);