public Response <PowerReviewAvgRateResponse> ParseResponse(IResultResponse response) { var result = new Response <PowerReviewAvgRateResponse>(); result.resultset.AvgRates = PowerReviewHelper.GetAvgRates(response.RawData); return(result); }
public Response <PowerReviewSnapshotResponse> ParseResponse(IResultResponse response) { var result = new Response <PowerReviewSnapshotResponse>(); result.resultset.Snapshot = PowerReviewHelper.GetSnapshot(response.RawData); return(result); }
public Response <PowerReviewsResponse> ParseResponse(IResultResponse response) { var result = new Response <PowerReviewsResponse>(); result.resultset.Reviews = PowerReviewHelper.GetReviews(response.RawData); result.resultset.Pagination.DisplayFrom = _displayFrom; result.resultset.Pagination.DisplayTo = _displayTo; result.resultset.Pagination.CurrentPage = _currentPage; result.resultset.Pagination.Sort = _sort; return(result); }
private IResponseBase GetResponse(DWClientConfig config) { var result = new Response <ProductListExtensionResponse>(); try { APIResponse apiResponse = null; if (_hasMultipleProducts) { apiResponse = DWClient.GetAPIResponse <ProductResult>(config); } else { apiResponse = DWClient.GetAPIResponse <DWProduct>(config); } if (apiResponse.ResponseStatus.Code == HttpStatusCode.OK) { if (_hasMultipleProducts) { var productResult = ((APIResponse <ProductResult>)apiResponse).Model; productResult.Products = SetProductBrands(productResult.Products, apiResponse.Raw); result.resultset = new ProductListExtensionResponse(productResult, _request.Colors, apiResponse.Raw); } else { var product = ((APIResponse <DWProduct>)apiResponse).Model; if (_usePredefinedVariations) { ReplaceColors(product); } result.resultset = new ProductListExtensionResponse(ProductListExtensionResponse.GetProductResult(product), _request.Colors, apiResponse.Raw); } result.template = Config.ResponseTemplates.ProductListExtension; foreach (var productItem in result.resultset.ProductIdToExtension) { try { var productsnapshot = PowerReviewHelper.GetSnapshot(productItem.Key); productItem.Value.Rating = (productsnapshot.average_rating == null)? 0: decimal.Parse((productsnapshot.average_rating)); } catch (Exception ex) { productItem.Value.Rating = 0; } } } else { _errors.Add(new SiteError { Message = new ErrorMessage(Config.Constants.GenericError, apiResponse.ResponseStatus.Message.ToString()) }); } } catch (Exception ex) { _errors.Add(ex.Handle("ProductListExtension.GetResponse", ErrorSeverity.FollowUp, ErrorType.RequestError)); } return(result); }
private Response <ProductDetailResponse> GetResponse(DWClientConfig config) { var result = new Response <ProductDetailResponse>(); try { var apiResponse = DWClient.GetAPIResponse <DWProduct>(config); if (apiResponse.ResponseStatus.Code == HttpStatusCode.OK) { result.resultset = new ProductDetailResponse(apiResponse.Model, _request.Color, _core, _errors); try { result.resultset.RecommendedProducts = RecommendedProducts.Load(result.resultset.Product.ProductId, _core).Products; } catch { // ignored } result.template = Config.ResponseTemplates.ProductDetail; var reviewsObj = GetPwReviews(result.resultset.Product.ProductId); result.resultset.Product.PowerReview.Reviews = reviewsObj.Item1; result.resultset.Product.PowerReview.Pagination = reviewsObj.Item2; result.resultset.Product.PowerReview.Snapshot = GetPwSnapShots(result.resultset.Product.ProductId); result.resultset.Product.PowerReview.MsqcTags = PowerReviewHelper.GetMsqcsTagSummary(result.resultset.Product.PowerReview.Reviews); result.resultset.Product.PowerReview.FaceOff = GetPwFaceOff(result.resultset.Product.ProductId); if (!string.IsNullOrWhiteSpace(result.resultset.Product.PowerReview.Snapshot.average_rating)) { result.resultset.Product.ProductRating.Rating = decimal.Parse(result.resultset.Product.PowerReview.Snapshot.average_rating); } if (result.resultset.Product.VariantIdsSegments.Count > 0) { IEnumerable <KeyValuePair <string, ProductDetailItemExtension> > tempDictionary = new Dictionary <string, ProductDetailItemExtension>(); result.resultset.Product.VariantIdsSegments.ForEach(segment => { var variantIdToExtension = GetDetailExtension(segment); tempDictionary = tempDictionary.Union(variantIdToExtension); }); if (!_errors.Any()) { var completeDictionary = tempDictionary.GroupBy(x => x.Key).ToDictionary(x => x.Key, x => x.First().Value); if (completeDictionary.Any()) { result.resultset.Product.Colors.ForEach(color => { color.Sizes.ForEach(size => { if (completeDictionary.ContainsKey(size.Value)) { size.SizeSegment = completeDictionary[size.Value].SizeSegment; size.ExclusiveMsg = completeDictionary[size.Value].ExclusiveMsg; size.PriceRange = completeDictionary[size.Value].PriceRange; } color.SizeSegments = color.Sizes .Where(x => !string.IsNullOrEmpty(x.SizeSegment)) .GroupBy(x => x.SizeSegment) .Select((x, i) => new Option { Name = x.First().SizeSegment, Value = x.First().SizeSegment, IsSelected = i == 0 }) .ToList(); }); color.Sizes = color.Sizes; }); } } } result.resultset.Product.Pricing = ProductPricing.GetByID(_core, _request.Id); } else { _errors.Add(new SiteError { Message = new ErrorMessage(Config.Constants.GenericError, apiResponse.ResponseStatus.Message) }); } } catch (Exception ex) { var titleMsg = string.Format("ProductDetail.GetResponse - DW Productid: {0}-{1}", result.resultset.Product.ProductId, config.Path); _errors.Add(ex.Handle(titleMsg, ErrorSeverity.FollowUp, ErrorType.RequestError)); } return(result); }
public Response<PowerReviewFaceOffResponse> ParseResponse(IResultResponse response) { var result = new Response<PowerReviewFaceOffResponse>(); result.resultset.FaceOff = PowerReviewHelper.GetFaceOffReviews(response.RawData); return result; }