Beispiel #1
0
        public ListResults Browse(ListResultsRequest listResultsRequest)
        {
            HttpWebRequest request     = CatalogRequestBuilder.ConstructListRequest(apiKey, listResultsRequest);
            ListResults    listResults = ProcessBodylessRequest(request).ToObject <ListResults>();

            return(listResults);
        }
Beispiel #2
0
        public void TestBrowse()
        {
            ListResultsRequest listResultsRequest = new ListResultsRequest();

            listResultsRequest.Type              = EnumTypes.ListType.DEFAULT;
            listResultsRequest.CategoryId        = "3135";
            listResultsRequest.IncludeAttributes = true;
            listResultsRequest.Offset            = 10;
            listResultsRequest.Limit             = 10;
            listResultsRequest.DataOutputs       = new EnumTypes.DataOutputType[] {
                EnumTypes.DataOutputType.PRODUCTS,
                EnumTypes.DataOutputType.CATEGORIES,
                EnumTypes.DataOutputType.REFINEMENTS
            };
            listResultsRequest.Offers = new EnumTypes.OfferType[] {
                EnumTypes.OfferType.ALL
            };

            ListResults listResults = client.Browse(listResultsRequest);

            Assert.IsTrue(listResults.TotalResultSize > 0);
            Assert.IsNotNull(listResults.Categories);
            Assert.IsTrue(listResults.Categories.Count > 0);
            Assert.IsNotNull(listResults.Products);
            Assert.IsTrue(listResults.Products.Count > 0);
            Assert.IsNotNull(listResults.RefinementGroups);
            Assert.IsTrue(listResults.RefinementGroups.Count > 0);
        }
Beispiel #3
0
        public static HttpWebRequest ConstructListRequest(string apiKey, ListResultsRequest listResultsRequest)
        {
            NameValueCollection queryParams = new NameValueCollection();

            queryParams.Add("apikey", apiKey);

            if (listResultsRequest.Type != null)
            {
                queryParams.Add("type", EnumUtils.StringValueOf(listResultsRequest.Type));
            }
            if (listResultsRequest.CategoryId != null || listResultsRequest.RefinementIds != null)
            {
                string ids = FormatterUtils.CombineCategoryAndRefinementIds(listResultsRequest.CategoryId, listResultsRequest.RefinementIds);
                queryParams.Add("ids", ids);
            }
            if (listResultsRequest.ListId != null)
            {
                queryParams.Add("listid", listResultsRequest.ListId);
            }
            if (listResultsRequest.IncludeAttributes != null)
            {
                queryParams.Add("includeattributes", listResultsRequest.IncludeAttributes.ToString().ToLower());
            }
            if (listResultsRequest.DataOutputs != null)
            {
                queryParams.Add("dataoutput", FormatterUtils.FormatDataOutput(listResultsRequest.DataOutputs));
            }
            if (listResultsRequest.Offers != null)
            {
                queryParams.Add("offers", FormatterUtils.FormatOffer(listResultsRequest.Offers));
            }
            if (listResultsRequest.Sort != null)
            {
                queryParams.Add("sort", EnumUtils.StringValueOf(listResultsRequest.Sort));
            }
            if (listResultsRequest.Offset != null)
            {
                queryParams.Add("offset", listResultsRequest.Offset.ToString().ToLower());
            }
            if (listResultsRequest.Limit != null)
            {
                queryParams.Add("limit", listResultsRequest.Limit.ToString().ToLower());
            }

            string queryString = HttpUtils.ToQueryString(queryParams);

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Constants.URL_PREFIX + "/catalog/v4/lists/" + queryString);

            request.Method = "GET";
            request.Accept = "application/json";

            return(request);
        }