public IEnumerable <Audit.UserArticleList> GetUserArticleList(Audit.UserArticleList.Criteria criteria) { var userArticleList = ( from article in _zdDBContext.UserArticle.Include(x => x.User).FilterBy(criteria, false) join record in _zdDBContext.AuditRecord.Include(a => a.Operator) on new { ID = article.Id.ToString(), AuditType = AuditType.Article.ToValue(), IdNotEqualNull = article.Id != null } equals new { ID = record.AuditId, record.AuditType, IdNotEqualNull = true } into cr from a in cr.DefaultIfEmpty() where string.IsNullOrEmpty(criteria.Auditor) || a.Operator.Name == criteria.Auditor where criteria.AuditStartDate == null && criteria.AuditEndDate == null || a.AuditDate >= criteria.AuditStartDate && a.AuditDate <= Convert.ToDateTime(criteria.AuditEndDate).AddDays(1) orderby article.CreateDate descending select new Audit.UserArticleList { ID = article.Id, RowId = Guid.NewGuid(), UserID = article.UserId, UserName = article.User.UserName, Type = article.Type, Title = article.Title, Status = article.Status, CreateDate = article.CreateDate, UpdateDate = article.UpdateDate, Content = article.Content, Cover = article.Cover, IsHot = article.IsHot, ViewCount = article.ViewCount, LikeCount = article.LikeCount, CollectCount = article.CollectCount, CommentCount = article.CommentCount, Tags = article.Tags, Remark = a.Remark, Telphone = article.User.Telphone, Auditor = a.Operator.Name, AuditDate = a.AuditDate }); return(userArticleList .Sort(criteria.SortField, criteria.IsOrderByDesc) .PaginationBy(criteria) .AsNoTracking() .ToList()); }
public IActionResult GetUserArticleList(Audit.UserArticleList.Criteria criteria) => criteria.PageOf(x => _userArticleRepo.GetUserArticleList(x));