public ActionResult Reviews() { var reviewsServiceProvider = new ReviewsServiceProvider(); var getReviewsRequest = new GetReviewsRequest(); GetReviewsResult getReviewsResult = reviewsServiceProvider.GetReviews(getReviewsRequest); if (!getReviewsResult.Success) { // todo: log here } // todo: investigate this //var model = getReviewsResult.Reviews // .Select(review => new Review // { // Author = review.Author, // Score = review.Score, // Text = review.Text // }) // .ToList(); return(this.View()); }
public override async Task <GetReviewsResponse> GetReviews(GetReviewsRequest request, ServerCallContext context) { try { var response = new GetReviewsResponse(); var reviewQueryRepo = _queryFactory.MongoQueryRepository <Domain.Review>(); var reviews = await reviewQueryRepo.FindListByFieldAsync(r => r.ReviewProduct.Id == request.ProductId.ConvertTo <Guid>()); if (reviews == null) { throw new CoreException($"Couldn't find the review with productId#{request.ProductId}."); } response.Reviews.AddRange( reviews .Select(x => x.ToDto()) .ToList()); return(response); } catch (Exception ex) { _logger.LogError(ex.Message); throw new RpcException(new Status(StatusCode.Internal, ex.Message)); } }
public override Task <GetReviewsResponse> GetReviews(GetReviewsRequest req, ServerCallContext context) { Console.WriteLine("Incoming get reviews request: Episode = {0} ", req.Episode); var resp = new GetReviewsResponse(); if (_data.TryGetValue(req.Episode, out List <Review> reviews)) { resp.Reviews.AddRange(reviews); } return(Task.FromResult(resp)); }
/// <summary> /// Retrieves reviews data for the specified application. /// </summary> /// <param name="request">A set of parameters for request.</param> /// <param name="token">Propogates notification that operation should be cancelled.</param> /// <returns>Reviews data for specified steam application.</returns> public async Task <ReviewsResponse> GetReviewsAsync(GetReviewsRequest request, CancellationToken token = default) { // Another option: https://partner.steamgames.com/doc/store/getreviews var queryParameters = new QueryParametersBuilder(); queryParameters.AppendParameter("json", "1"); queryParameters.AppendParameter("filter", request.Filter.ToString().ToLower()); queryParameters.AppendParameter("language", request.Language); queryParameters.AppendParameter("review_type", request.ReviewType.ToString().ToLower()); queryParameters.AppendParameter( "purchase_type", request.PurchaseType.ToString().ToLower() ); if (request.DayRange.HasValue) { queryParameters.AppendParameter("day_range", request.DayRange.Value.ToString()); } if (request.StartOffset.HasValue) { queryParameters.AppendParameter( "start_offset", request.StartOffset.Value.ToString() ); } using (var response = await GetRetryPolicy().ExecuteAsync( () => _httpClient.GetAsync(_config.SteamStoreBaseUrl + $"/appreviews/{request.AppId}" + queryParameters.ToString(), token))) { response.EnsureSuccessStatusCode(); var result = await response.Content.ReadAsStringAsync(); var jsonData = JToken.Parse(result); if (jsonData["success"].ToString() != "1") { throw new SteamApiBadRequestException( "Bad request status. Check if you specified rigth parameters." ); } return(jsonData.ToObject <ReviewsResponse>()); } }
public override async Task <GetReviewsResponse> GetReviews(GetReviewsRequest request, ServerCallContext context) { var reviewQueryRepo = _queryFactory.MongoQueryRepository <Domain.Review>(); var reviews = await reviewQueryRepo.FindListByFieldAsync(r => r.ReviewProduct.Id == request.ProductId.ConvertTo <Guid>()); if (reviews == null) { throw new CoreException($"Couldn't find the review with productId#{request.ProductId}."); } var response = new GetReviewsResponse(); response.Reviews.AddRange( reviews .Select(x => x.ToDto()) .ToList()); return(response); }
/// <summary> /// Get a paginated set of reviews associated with the specified User Generated Content. /// </summary> public static void GetItemReviews(GetReviewsRequest request, Action <GetReviewsResult> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { PlayFabHttp.MakeApiCall("/UserGeneratedContent/GetItemReviews", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders); }
public virtual GetReviewsResult GetReviews(GetReviewsRequest request) { return(this.RunPipeline <GetReviewsRequest, GetReviewsResult>(Constants.PipelineNames.GetProductReviews, request)); }