public static HttpWebRequest ConstructProductRecommendationsRequest(string apiKey, ProductRecommendationsRequest productRecommendationsRequest) { NameValueCollection queryParams = new NameValueCollection(); queryParams.Add("apikey", apiKey); if (productRecommendationsRequest.IncludeAttributes != null) { queryParams.Add("includeattributes", productRecommendationsRequest.IncludeAttributes.ToString().ToLower()); } if (productRecommendationsRequest.Offset != null) { queryParams.Add("offset", productRecommendationsRequest.Offset.ToString().ToLower()); } if (productRecommendationsRequest.Limit != null) { queryParams.Add("limit", productRecommendationsRequest.Limit.ToString().ToLower()); } string queryString = HttpUtils.ToQueryString(queryParams); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Constants.URL_PREFIX + "/catalog/v4/recommendations/" + productRecommendationsRequest.Id + "/" + queryString); request.Method = "GET"; request.Accept = "application/json"; return request; }
public ProductRecommendations GetProductRecommendations(ProductRecommendationsRequest productRecommendationsRequest) { HttpWebRequest request = CatalogRequestBuilder.ConstructProductRecommendationsRequest(apiKey, productRecommendationsRequest); ProductRecommendations productRecommendations = ProcessBodylessRequest(request).ToObject<ProductRecommendations>(); return productRecommendations; }
public void TestGetProductRecommendation() { ProductRecommendationsRequest productRecommendationsRequest = new ProductRecommendationsRequest(); productRecommendationsRequest.Id = "1004004012288125"; productRecommendationsRequest.IncludeAttributes = true; productRecommendationsRequest.Offers = new EnumTypes.OfferType[] { EnumTypes.OfferType.ALL }; productRecommendationsRequest.Offset = 0; productRecommendationsRequest.Limit = 10; ProductRecommendations productRecommendations = client.GetProductRecommendations(productRecommendationsRequest); Assert.IsNotNull(productRecommendations.Products); Assert.IsTrue(productRecommendations.Products.Count > 0); }