/// <summary>
        /// Gets Product Reviews list
        /// </summary>
        /// <param name="productReviewModel"></param>
        /// <returns></returns>
        public async Task <ProductReviewResponse> GetProductReviews(ProductReviewRequest productReviewModel, ViatorSetting setting = null)
        {
            var    uri      = $"service/product/reviews";
            string fullURL  = $"{GenerateBaseURL(uri, setting)}&{GenerateQueryString(productReviewModel)}";
            var    response = await _httpClient.GetStringAsync(fullURL);

            var result = ProductReviewResponse.FromJson(response);

            return(result);
        }
        public async Task <IActionResult> AddProductReview(int userId, ProductReviewRequest request)
        {
            await _productReviewService.AddAsync(userId, request);

            return(Created(
                       Url.Link("GetUserProductReview", new
            {
                userId,
                productName = request.ProductName
            }), null));
        }
        public async Task AddAsync(int userId, ProductReviewRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (userId <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(userId));
            }


            var reviewItem = ToProductReviewItem(userId, request);
            await _productReviewRepository.AddAsync(reviewItem);
        }