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); }
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); }