示例#1
0
        public async Task <CustomerProductReviewsModel> Handle(GetReviews request, CancellationToken cancellationToken)
        {
            var reviewsModel = new CustomerProductReviewsModel();

            reviewsModel.CustomerId   = request.Customer.Id;
            reviewsModel.CustomerInfo = request.Customer != null?request.Customer.IsRegistered() ? request.Customer.Email : _localizationService.GetResource("Admin.Customers.Guest") : "";

            var productReviews = await _productService.GetAllProductReviews(request.Customer.Id);

            foreach (var productReview in productReviews)
            {
                var product = await _productService.GetProductById(productReview.ProductId);

                var reviewModel = new CustomerProductReviewModel();

                reviewModel.Id            = productReview.Id;
                reviewModel.ProductId     = productReview.ProductId;
                reviewModel.ProductName   = product.Name;
                reviewModel.ProductSeName = product.GetSeName(request.Language.Id);
                reviewModel.Rating        = productReview.Rating;
                reviewModel.CreatedOn     = _dateTimeHelper.ConvertToUserTime(productReview.CreatedOnUtc, DateTimeKind.Utc);
                reviewModel.Signature     = productReview.Signature;
                reviewModel.ReviewText    = productReview.ReviewText;
                reviewModel.ReplyText     = productReview.ReplyText;
                reviewModel.IsApproved    = productReview.IsApproved;

                reviewsModel.Reviews.Add(reviewModel);
            }

            return(reviewsModel);
        }
示例#2
0
        public virtual async Task <CustomerProductReviewsModel> PrepareReviews(Customer customer)
        {
            var reviewsModel = new CustomerProductReviewsModel();

            reviewsModel.CustomerId   = customer.Id;
            reviewsModel.CustomerInfo = customer != null?customer.IsRegistered() ? customer.Email : _localizationService.GetResource("Admin.Customers.Guest") : "";

            var productReviews = await _productService.GetAllProductReviews(customer.Id);

            foreach (var productReview in productReviews)
            {
                var product = await _productService.GetProductById(productReview.ProductId);

                var reviewModel = new CustomerProductReviewModel();

                reviewModel.Id            = productReview.Id;
                reviewModel.ProductId     = productReview.ProductId;
                reviewModel.ProductName   = product.Name;
                reviewModel.ProductSeName = product.GetSeName(_workContext.WorkingLanguage.Id);
                reviewModel.Rating        = productReview.Rating;
                reviewModel.CreatedOn     = _dateTimeHelper.ConvertToUserTime(productReview.CreatedOnUtc, DateTimeKind.Utc);
                reviewModel.Signature     = productReview.Signature;
                reviewModel.ReviewText    = productReview.ReviewText;
                reviewModel.ReplyText     = productReview.ReplyText;
                reviewModel.IsApproved    = productReview.IsApproved;

                reviewsModel.Reviews.Add(reviewModel);
            }

            return(reviewsModel);
        }
        public virtual CustomerProductReviewsModel PrepareCustomerProductReviewsModel(int?page)
        {
            var pageSize  = _catalogSettings.ProductReviewsPageSizeOnAccountPage;
            int pageIndex = 0;

            if (page > 0)
            {
                pageIndex = page.Value - 1;
            }

            var list = _productService.GetAllProductReviews(customerId: _workContext.CurrentCustomer.Id,
                                                            approved: null,
                                                            pageIndex: pageIndex,
                                                            pageSize: pageSize);

            var productReviews = new List <CustomerProductReviewModel>();

            foreach (var review in list)
            {
                var product            = review.Product;
                var productReviewModel = new CustomerProductReviewModel
                {
                    Title         = review.Title,
                    ProductId     = product.Id,
                    ProductName   = product.GetLocalized(p => p.Name),
                    ProductSeName = product.GetSeName(),
                    Rating        = review.Rating,
                    ReviewText    = review.ReviewText,
                    ReplyText     = review.ReplyText,
                    WrittenOnStr  = _dateTimeHelper.ConvertToUserTime(product.CreatedOnUtc, DateTimeKind.Utc).ToString("g")
                };

                if (_catalogSettings.ProductReviewsMustBeApproved)
                {
                    productReviewModel.ApprovalStatus = review.IsApproved
                        ? _localizationService.GetResource("Account.CustomerProductReviews.ApprovalStatus.Approved")
                        : _localizationService.GetResource("Account.CustomerProductReviews.ApprovalStatus.Pending");
                }
                productReviews.Add(productReviewModel);
            }

            var pagerModel = new PagerModel
            {
                PageSize         = list.PageSize,
                TotalRecords     = list.TotalCount,
                PageIndex        = list.PageIndex,
                ShowTotalSummary = false,
                RouteActionName  = "CustomerProductReviewsPaged",
                UseRouteLinks    = true,
                RouteValues      = new CustomerProductReviewsModel.CustomerProductReviewsRouteValues {
                    page = pageIndex
                }
            };

            var model = new CustomerProductReviewsModel
            {
                ProductReviews = productReviews,
                PagerModel     = pagerModel
            };

            return(model);
        }