/// <returns>A task that represents the asynchronous operation</returns> public virtual async Task <IActionResult> ProductReviews(int productId) { var product = await _productService.GetProductByIdAsync(productId); if (product == null || product.Deleted || !product.Published || !product.AllowCustomerReviews) { return(RedirectToRoute("Homepage")); } var model = new ProductReviewsModel(); model = await _productModelFactory.PrepareProductReviewsModelAsync(model, product); await ValidateProductReviewAvailabilityAsync(product); //default value model.AddProductReview.Rating = _catalogSettings.DefaultProductRatingValue; //default value for all additional review types if (model.ReviewTypeList.Count > 0) { foreach (var additionalProductReview in model.AddAdditionalProductReviewList) { additionalProductReview.Rating = additionalProductReview.IsRequired ? _catalogSettings.DefaultProductRatingValue : 0; } } return(View(model)); }
public async Task CanPrepareProductReviewsModel() { var product = await _productService.GetProductByIdAsync(3); var model = await _productModelFactory.PrepareProductReviewsModelAsync(new ProductReviewsModel(), product); model.ProductId.Should().Be(product.Id); model.ProductName.Should().Be(product.Name); model.ProductSeName.Should().Be(await GetService <IUrlRecordService>().GetSeNameAsync(product)); model.Items.Any().Should().BeTrue(); }