public IEnumerable <Audit.UserProduct> GetUserProductList(Audit.UserProduct.Criteria criteria) { var UserProductList = ( from product in _zdDBContext.UserProduct.Include(x => x.User).FilterBy(criteria, false) join record in _zdDBContext.AuditRecord.Include(a => a.Operator) on new { ID = product.Id.ToString(), AuditType = AuditType.Product.ToValue(), IdNotEqualNull = product.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 product.CreateDate descending select new Audit.UserProduct { ID = product.Id, RowId = Guid.NewGuid(), UserID = product.UserId, UnitPrice = product.UnitPrice, UserName = product.User.UserName, Content = product.Content, Title = product.Title, Cover = product.Cover, Tags = product.Tags, CreateDate = product.CreateDate, ViewCount = product.ViewCount, CollectCount = product.CollectCount, Status = product.Status, Remark = a.Remark, Telphone = product.User.Telphone, Auditor = a.Operator.Name, AuditDate = a.AuditDate }); return(UserProductList .Sort(criteria.SortField, criteria.IsOrderByDesc) .PaginationBy(criteria) .AsNoTracking() .ToList()); }
public IActionResult GetUserProductList(Audit.UserProduct.Criteria criteria) { return(criteria.PageOf(x => _userProductRepo.GetUserProductList(x))); }