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));
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }