コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }