public async Task <PagedResultDto <ReviewDto> > Handle(GetReviewsQuery request, CancellationToken cancellationToken) { var page = request.InputPage.Page - 1; IQueryable <Review> reviews; if (request.ReviewType == ReviewType.Company) { reviews = _companyRepository.Read() .Include(x => x.User).OrderByDescending(x => x.Date) .Skip(page * request.InputPage.PageSize) .Take(request.InputPage.PageSize); } else if (request.ReviewType == ReviewType.Shop) { reviews = _shopRepository.Read() .Include(x => x.User).OrderByDescending(x => x.Date) .Skip(page * request.InputPage.PageSize) .Take(request.InputPage.PageSize); } else { reviews = null; } var reviewsDto = _mapper.Map <IList <ReviewDto> >(reviews.ToList()); var reviewTotalCount = reviews.Count(); var response = new PagedResultDto <ReviewDto>() { PageSize = request.InputPage.PageSize, CurrentPage = request.InputPage.Page, TotalPages = (int)Math.Ceiling((decimal)reviewTotalCount / (decimal)request.InputPage.PageSize), Results = reviewsDto }; return(response); }
public Task <PagedList <ReviewDTO> > GetReviewsAsync(GetReviewsQuery query) { var where = new StringBuilder(); if (query.Keyword.IsPresent()) { where.AppendFormat(" AND (OrderNo LIKE '%{0}%' OR User LIKE '%{0}%' OR SKU LIKE '%{0}%' OR Title LIKE '%{0}%')", query.Keyword); } string orderBy = "CreatedOnUtc"; switch (query.OrderBy.GetValueOrDefault()) { case 1: orderBy = "OrderNo"; break; case 2: orderBy = "User"; break; case 3: orderBy = "SKU"; break; } orderBy += " " + query.SortDirection; return(base.GetPagedListAsync <ReviewDTO>(query.PageSize, query.PageIndex, "Review", "*", where.ToString(), orderBy)); }
public async Task <DataTables <ReviewDTO> > GetReviewsAsync(DataTableModel model) { var query = new GetReviewsQuery { PageSize = model.PageSize, PageIndex = model.PageIndex, OrderBy = model.OrderBy, Draw = model.Draw, Keyword = model.Keyword, SortDirection = model.SortDirection, }; query.SetContext(User.Identity); var plist = await ReviewDF.GetReviewsAsync(query).ConfigureAwait(false); return(new DataTables <ReviewDTO>(query.Draw, plist)); }
public async Task <PagedList <ReviewDTO> > GetReviewsAsync(GetReviewsQuery query) { var rs = await ReviewDAL.GetReviewsAsync(query).ConfigureAwait(false); return(rs); }
public async Task <ActionResult <PagedResultDto <CompanyDto> > > GetReviews([FromRoute] ReviewType reviewType, [FromBody] GetReviewsQuery query) { query.ReviewType = reviewType; var result = await _mediator.Send(query); return(Ok(result)); }