/// <summary> /// Gets the product or category/refinement results list. /// </summary> /// <param name="listResultRequest">The list result request.</param> /// <returns>The list result response.</returns> public ListResultResponse GetList(ListResultRequest listResultRequest) { ListResultResponse listResultResponse = null; // Prepare request NameValueCollection queryParams = new NameValueCollection(); if (listResultRequest.Offset != null) { queryParams.Add("offset", listResultRequest.Offset.ToString()); } if (listResultRequest.NrProducts != null) { queryParams.Add("nrProducts", listResultRequest.NrProducts.ToString()); } if (listResultRequest.SortingMethod != null) { queryParams.Add("sortingMethod", EnumUtils.stringValueOf(listResultRequest.SortingMethod)); } if (listResultRequest.SortingAscending != null) { queryParams.Add("sortingAscending", listResultRequest.SortingAscending.ToString()); } if (listResultRequest.IncludeProducts != null) { queryParams.Add("includeProducts", listResultRequest.IncludeProducts.ToString()); } if (listResultRequest.IncludeCategories != null) { queryParams.Add("includeCategories", listResultRequest.IncludeCategories.ToString()); } if (listResultRequest.IncludeRefinements != null) { queryParams.Add("includeRefinements", listResultRequest.IncludeRefinements.ToString()); } if (listResultRequest.IncludeAttributes != null) { queryParams.Add("includeAttributes", listResultRequest.IncludeAttributes.ToString()); } string queryString = ToQueryString(queryParams); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL_PREFIX + "/catalog/v3/listresults/" + EnumUtils.stringValueOf(listResultRequest.Type) + "/" + HttpUtility.UrlEncode(combineCategoryAndRefinementIds(listResultRequest.CategoryId, listResultRequest.RefinementIds), UTF8Encoding.UTF8) + "/" + queryString); request.Method = "GET"; // Handle request AuthUtils.HandleRequest(request, accessKeyId, secretAccessKey, null, queryParams); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Load XML document if (HttpStatusCode.OK == response.StatusCode) { XmlSerializer ser = new XmlSerializer(typeof(ListResultResponse)); object obj = ser.Deserialize(response.GetResponseStream()); listResultResponse = (ListResultResponse)obj; response.Close(); } return(listResultResponse); }
/// <summary> /// Pings the OpenAPI server. /// </summary> /// <returns>True when the server pongs back.</returns> public Boolean Ping() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL_PREFIX + "/utils/v3/ping"); request.Method = "GET"; // Handle request AuthUtils.HandleRequest(request, accessKeyId, secretAccessKey, null, null); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.Close(); return(HttpStatusCode.OK == response.StatusCode); }
/// <summary> /// Gets the product. /// </summary> /// <param name="id">The product id.</param> /// <returns>The product response.</returns> public ProductResponse GetProduct(string id) { ProductResponse productResponse = null; // Prepare request HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL_PREFIX + "/catalog/v3/products/" + id); request.Method = "GET"; // Handle request AuthUtils.HandleRequest(request, accessKeyId, secretAccessKey); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Load XML document if (HttpStatusCode.OK == response.StatusCode) { XmlSerializer ser = new XmlSerializer(typeof(ProductResponse)); object obj = ser.Deserialize(response.GetResponseStream()); productResponse = (ProductResponse)obj; response.Close(); } return(productResponse); }
/// <summary> /// Searches for products. /// </summary> /// <param name="searchResultsRequest">The search results request.</param> /// <returns>The search results response.</returns> public SearchResultsResponse Search(SearchResultsRequest searchResultsRequest) { SearchResultsResponse searchResultsResponse = null; // Prepare request NameValueCollection queryParams = new NameValueCollection(); if (searchResultsRequest.Term != null) { queryParams.Add("term", searchResultsRequest.Term); } if (searchResultsRequest.Offset != null) { queryParams.Add("offset", searchResultsRequest.Offset.ToString()); } if (searchResultsRequest.NrProducts != null) { queryParams.Add("nrProducts", searchResultsRequest.NrProducts.ToString()); } if (searchResultsRequest.SortingMethod != null) { queryParams.Add("sortingMethod", EnumUtils.stringValueOf(searchResultsRequest.SortingMethod)); } if (searchResultsRequest.SortingAscending != null) { queryParams.Add("sortingAscending", searchResultsRequest.SortingAscending.ToString()); } if (searchResultsRequest.IncludeProducts != null) { queryParams.Add("includeProducts", searchResultsRequest.IncludeProducts.ToString()); } if (searchResultsRequest.IncludeCategories != null) { queryParams.Add("includeCategories", searchResultsRequest.IncludeCategories.ToString()); } if (searchResultsRequest.IncludeRefinements != null) { queryParams.Add("includeRefinements", searchResultsRequest.IncludeRefinements.ToString()); } if (searchResultsRequest.IncludeAttributes != null) { queryParams.Add("includeAttributes", searchResultsRequest.IncludeAttributes.ToString()); } string queryString = ToQueryString(queryParams); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL_PREFIX + "/catalog/v3/searchresults/" + queryString); request.Method = "GET"; // Handle request AuthUtils.HandleRequest(request, accessKeyId, secretAccessKey, null, queryParams); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Load XML document if (HttpStatusCode.OK == response.StatusCode) { XmlSerializer ser = new XmlSerializer(typeof(SearchResultsResponse)); object obj = ser.Deserialize(response.GetResponseStream()); searchResultsResponse = (SearchResultsResponse)obj; response.Close(); } return(searchResultsResponse); }