public LookupAmazonListingResponse LookupAmazonListings(LookupAmazonListingRequest lookupAmazonListingRequest) { Dictionary <string, decimal> amazonListings = new Dictionary <string, decimal>(); foreach (IEnumerable <string> batchedAsins in lookupAmazonListingRequest.ASINs.Batch(c_asinBatchSize)) { Dictionary <string, string> optionalParameters = new Dictionary <string, string>(); optionalParameters["ItemId"] = string.Join(",", batchedAsins); optionalParameters["IdType"] = IdType.ASIN.ToString(); optionalParameters["Operation"] = Operation.ItemLookup.ToString(); optionalParameters["ResponseGroup"] = ResponseGroup.OfferFull.ToString(); optionalParameters["Condition"] = "New"; optionalParameters["MerchantId"] = "Amazon"; ProductAdvApiResponse response = SignAndIssueRequest(optionalParameters); Dictionary <string, decimal> batchedAmazonListings = ItemLookupUtility.ReadAmazonListingResponse(response.Nodes); foreach (KeyValuePair <string, decimal> amazonListing in batchedAmazonListings) { if (!amazonListings.ContainsKey(amazonListing.Key)) { amazonListings.Add(amazonListing.Key, amazonListing.Value); } } } return(new LookupAmazonListingResponse { AmazonListings = amazonListings }); }
public LookupProductResponse LookupProduct(LookupProductRequest lookupProductRequest) { LookupProductResponse lookProductResponse = null; ProductAdvApiResponse response; Dictionary <string, string> optionalParameters = new Dictionary <string, string>(); if (lookupProductRequest.IdType == IdType.ItemNumber) { optionalParameters["Keywords"] = lookupProductRequest.ItemId; optionalParameters["SearchIndex"] = lookupProductRequest.SearchIndex.ToString(); if (lookupProductRequest.ParameterType.HasValue && lookupProductRequest.ParameterString != null) { optionalParameters[lookupProductRequest.ParameterType.Value.ToString()] = lookupProductRequest.ParameterString; } optionalParameters["Operation"] = Operation.ItemSearch.ToString(); optionalParameters["SearchIndex"] = lookupProductRequest.SearchIndex.ToString(); optionalParameters["ResponseGroup"] = lookupProductRequest.ResponseGroup.ToString(); response = SignAndIssueRequest(optionalParameters); if (!response.Errored) { Product product = ItemSearchUtility.ReadItemSearchResponse(response.Nodes, lookupProductRequest.ItemId); lookProductResponse = new LookupProductResponse(product, ProductSearchMethod.ItemNumber); } } else if (lookupProductRequest.IdType == IdType.ASIN) { optionalParameters["ItemId"] = lookupProductRequest.ItemId; optionalParameters["IdType"] = lookupProductRequest.IdType.ToString(); optionalParameters["Operation"] = Operation.ItemLookup.ToString(); optionalParameters["ResponseGroup"] = lookupProductRequest.ResponseGroup.ToString(); response = SignAndIssueRequest(optionalParameters); if (!response.Errored) { ProductAndProductMetadata productAndProductMetadata = ItemLookupUtility.ReadAsinLookupResponse(response.Nodes); lookProductResponse = new LookupProductResponse(productAndProductMetadata.Product, ProductSearchMethod.ASIN, productAndProductMetadata.ProductMetadata); } } else { optionalParameters["ItemId"] = lookupProductRequest.ItemId; optionalParameters["IdType"] = lookupProductRequest.IdType.ToString(); optionalParameters["Operation"] = Operation.ItemLookup.ToString(); optionalParameters["SearchIndex"] = lookupProductRequest.SearchIndex.ToString(); optionalParameters["ResponseGroup"] = ResponseGroup.Medium.ToString(); response = SignAndIssueRequest(optionalParameters); if (response != null && !response.Errored) { ProductAndProductMetadata productAndProductMetadata = ItemLookupUtility.ReadAsinLookupResponse(response.Nodes); lookProductResponse = new LookupProductResponse(productAndProductMetadata.Product, ProductSearchMethod.UPC, productAndProductMetadata.ProductMetadata); } } return(lookProductResponse); }