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);
        }
Example #2
0
        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));
        }
Example #4
0
        public async Task <PagedList <ReviewDTO> > GetReviewsAsync(GetReviewsQuery query)
        {
            var rs = await ReviewDAL.GetReviewsAsync(query).ConfigureAwait(false);

            return(rs);
        }
Example #5
0
        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));
        }