public virtual IActionResult ProductReviewReviewTypeMappingList(ProductReviewReviewTypeMappingSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProductReviews)) { return(AccessDeniedDataTablesJson()); } var productReview = _productService.GetProductReviewById(searchModel.ProductReviewId) ?? throw new ArgumentException("No product review found with the specified id"); //prepare model var model = _productReviewModelFactory.PrepareProductReviewReviewTypeMappingListModel(searchModel, productReview); return(Json(model)); }
/// <summary> /// Prepare paged product reviews mapping list model /// </summary> /// <param name="searchModel">Product review and review type mapping search model</param> /// <param name="productReview">Product review</param> /// <returns>Product review and review type mapping list model</returns> public virtual ProductReviewReviewTypeMappingListModel PrepareProductReviewReviewTypeMappingListModel(ProductReviewReviewTypeMappingSearchModel searchModel, ProductReview productReview) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (productReview == null) { throw new ArgumentNullException(nameof(productReview)); } //get product review and review type mappings var productReviewReviewTypeMappings = _reviewTypeService.GetProductReviewReviewTypeMappingsByProductReviewId(productReview.Id); //prepare grid model var model = new ProductReviewReviewTypeMappingListModel { Data = productReviewReviewTypeMappings.PaginationByRequestModel(searchModel).Select(productReviewReviewTypeMapping => { //fill in model values from the entity var productReviewReviewTypeMappingModel = new ProductReviewReviewTypeMappingModel { Id = productReviewReviewTypeMapping.Id, ProductReviewId = productReviewReviewTypeMapping.ProductReviewId, Rating = productReviewReviewTypeMapping.Rating }; //fill in additional values (not existing in the entity) var reviewType = _reviewTypeService.GetReviewTypeById(productReviewReviewTypeMapping.ReviewTypeId); productReviewReviewTypeMappingModel.Name = reviewType.GetLocalized(entity => entity.Name); productReviewReviewTypeMappingModel.Description = reviewType.GetLocalized(entity => entity.Description); productReviewReviewTypeMappingModel.VisibleToAllCustomers = reviewType.VisibleToAllCustomers; return(productReviewReviewTypeMappingModel); }), Total = productReviewReviewTypeMappings.Count }; return(model); }
/// <summary> /// Prepare product review mapping search model /// </summary> /// <param name="searchModel">Product review mapping search model</param> /// <param name="productReview">Product</param> /// <returns>Product review mapping search model</returns> public virtual ProductReviewReviewTypeMappingSearchModel PrepareProductReviewReviewTypeMappingSearchModel(ProductReviewReviewTypeMappingSearchModel searchModel, ProductReview productReview) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (productReview == null) { throw new ArgumentNullException(nameof(productReview)); } searchModel.ProductReviewId = productReview.Id; //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }
/// <summary> /// Prepare paged product reviews mapping list model /// </summary> /// <param name="searchModel">Product review and review type mapping search model</param> /// <param name="productReview">Product review</param> /// <returns>Product review and review type mapping list model</returns> public virtual ProductReviewReviewTypeMappingListModel PrepareProductReviewReviewTypeMappingListModel(ProductReviewReviewTypeMappingSearchModel searchModel, ProductReview productReview) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (productReview == null) { throw new ArgumentNullException(nameof(productReview)); } //get product review and review type mappings var productReviewReviewTypeMappings = _reviewTypeService .GetProductReviewReviewTypeMappingsByProductReviewId(productReview.Id).ToPagedList(searchModel); //prepare grid model var model = new ProductReviewReviewTypeMappingListModel().PrepareToGrid(searchModel, productReviewReviewTypeMappings, () => { return(productReviewReviewTypeMappings.Select(productReviewReviewTypeMapping => { //fill in model values from the entity var productReviewReviewTypeMappingModel = productReviewReviewTypeMapping .ToModel <ProductReviewReviewTypeMappingModel>(); //fill in additional values (not existing in the entity) var reviewType = _reviewTypeService.GetReviewTypeById(productReviewReviewTypeMapping.ReviewTypeId); productReviewReviewTypeMappingModel.Name = _localizationService.GetLocalized(reviewType, entity => entity.Name); productReviewReviewTypeMappingModel.Description = _localizationService.GetLocalized(reviewType, entity => entity.Description); productReviewReviewTypeMappingModel.VisibleToAllCustomers = reviewType.VisibleToAllCustomers; return productReviewReviewTypeMappingModel; })); }); return(model); }