public async Task <IActionResult> GetReviews([FromQuery] ReviewsParameter reviewsParameter)
        {
            var getAllReviewsQuery = new GetAllReviewsQuery(reviewsParameter);
            var result             = await mediator.Send(getAllReviewsQuery);

            if (result.Code == HttpStatusCode.OK)
            {
                Response.Headers.Add("X-Pagination", PagedList <Entity> .ToJson(result.Value as PagedList <Entity>));
            }

            return(StatusCode((int)result.Code, result.Value));
        }
        public async Task <APIResponse> GetReviews(ReviewsParameter reviewsParameter)
        {
            try
            {
                string serializedStories;
                // List<AssetResponse> stories;

                /* var encodedStories = await distributedCache.GetAsync(BlogServiceOperation.GetStoriesCacheName);
                 *
                 * if (encodedStories != null)
                 * {
                 *   serializedStories = Encoding.UTF8.GetString(encodedStories);
                 *   stories = JsonConvert.DeserializeObject<List<StoryResponse>>(serializedStories);
                 * }
                 * else
                 * {*/
                var client = httpClientFactory.CreateClient(VendorServiceOperation.serviceName);

                UriBuilder url = new UriBuilder(servicesConfig.Blog + VendorServiceOperation.GetReviews());
                url.Query = QueryStringHelper.ConvertToQueryString(reviewsParameter);

                var response = await client.GetAsync(url.ToString());

                var reviewResponse = JsonConvert.DeserializeObject <APIResponse>(await response.Content.ReadAsStringAsync());

                serializedStories = JsonConvert.SerializeObject(reviewResponse);

                /* encodedStories = Encoding.UTF8.GetBytes(serializedStories);
                 * var options = new DistributedCacheEntryOptions()
                 *               .SetSlidingExpiration(TimeSpan.FromMinutes(1))
                 *               .SetAbsoluteExpiration(DateTime.Now.AddHours(1));
                 *
                 * await distributedCache.SetAsync(VendorServiceOperation.GetStoriesCacheName, encodedStories, options);
                 * }*/

                return(new APIResponse(reviewResponse, HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception in method 'GetReviews()'");
                var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                return(new APIResponse(exMessage, HttpStatusCode.InternalServerError));
            }
        }
        /// <summary>
        /// Gets all Reviews.
        /// </summary>
        /// <param name="BenefitsParameter">The Reviews parameters.</param>
        /// <returns></returns>
        public async Task <PagedList <Entity> > GetAllReviews(ReviewsParameter reviewsParameter)
        {
            {
                {
                    var getReviewsParams = new object[] {
                        new MySqlParameter("@p_ReviewTypeId", reviewsParameter.ReviewTypeId),
                        new MySqlParameter("@p_ReferenceId", reviewsParameter.ReferenceId),
                        new MySqlParameter("@p_ApprovalStatusOrId", reviewsParameter.ApprovalStatusOrId),
                        new MySqlParameter("@p_IsForSingReview", reviewsParameter.IsForSingReview)
                    };
                    var Reviews = await FindAll("CALL SpSelectActiveReview(@p_ReviewTypeId, @p_ReferenceId, @p_ApprovalStatusOrId,@p_IsForSingReview)", getReviewsParams).ToListAsync();

                    var mappedReviews = Reviews.AsQueryable().ProjectTo <ReviewsResponse>(mapper.ConfigurationProvider);
                    var sortedReviews = sortHelper.ApplySort(mappedReviews, reviewsParameter.OrderBy);
                    var shapedReviews = dataShaper.ShapeData(sortedReviews, reviewsParameter.Fields);
                    return(await PagedList <Entity> .ToPagedList(shapedReviews, reviewsParameter.PageNumber, reviewsParameter.PageSize));
                }
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="GetAllOffersQuery"/> class.
 /// </summary>
 /// <param name="reviewsParameter">The Offers parameters.</param>
 public GetAllReviewsQuery(ReviewsParameter reviewsParameter)
 {
     ReviewsParameter = reviewsParameter;
 }
        public async Task <IActionResult> GetReviews([FromQuery] ReviewsParameter reviewsParameter)
        {
            var result = await reviewCommentService.GetReviews(reviewsParameter);

            return(StatusCode((int)result.Code, result.Value));
        }