public async Task <IList <QuestionEntity> > Query(QuestionQueryModel model) { var paging = model.Paging(); var query = Db.Find(); var joinQuery = query.LeftJoin <MemberEntity>((t1, t2) => t1.MemberId == t2.Id) .LeftJoin <CategoryEntity>((t1, t2, t3) => t1.CategoryId == t3.Id); joinQuery.WhereNotNull(model.CategoryId, (t1, t2, t3) => t1.CategoryId == model.CategoryId); joinQuery.WhereNotNull(model.Title, (t1, t2, t3) => t1.Title.Contains(model.Title)); joinQuery.WhereNotNull(model.MemberId, (t1, t2, t3) => t1.MemberId == model.MemberId); if (!paging.OrderBy.Any()) { joinQuery.OrderByDescending((t1, t2, t3) => t1.Id); } joinQuery.Select((t1, t2, t3) => new { t1, t2.NickName, t2.Avatar, t2.Sex, CategoryName = t3.Name }); var result = await query.PaginationAsync(paging); model.TotalCount = paging.TotalCount; return(result); }
public async Task <IResultModel> Query(QuestionQueryModel model) { var result = new QueryResultModel <QuestionEntity> { Rows = await _repository.Query(model), Total = model.TotalCount }; return(ResultModel.Success(result)); }
public Task <IResultModel> List([FromQuery] QuestionQueryModel model) { return(_service.Query(model)); }