Beispiel #1
0
        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);
        }
Beispiel #2
0
        public async Task <IResultModel> Query(QuestionQueryModel model)
        {
            var result = new QueryResultModel <QuestionEntity>
            {
                Rows  = await _repository.Query(model),
                Total = model.TotalCount
            };

            return(ResultModel.Success(result));
        }
Beispiel #3
0
 public Task <IResultModel> List([FromQuery] QuestionQueryModel model)
 {
     return(_service.Query(model));
 }