/// <summary> /// Handles the specified command. /// </summary> /// <param name="command">The command.</param> public async void Handle(AmazonGetProductCategories3dPartyCommand command) { InfoAccumulator info = new InfoAccumulator(); IDictionary <string, IEnumerable <AmazonProductCategory> > categoriesPerSku = new Dictionary <string, IEnumerable <AmazonProductCategory> >(); foreach (var sku in command.SellerSKUs.Distinct()) { if (string.IsNullOrEmpty(sku)) { Log.Warn("got empty sku"); continue; } var categoriesRequest = new GetProductCategoriesForSKURequest { SellerId = command.SellerId, SellerSKU = sku, MarketplaceId = command.MarketplaceId }; GetProductCategoriesForSKUResponse response = await AmazonService.Products.GetProductCategoriesForSKU(categoriesRequest); IEnumerable <AmazonProductCategory> categories = Enumerable.Empty <AmazonProductCategory>(); if (response.IsSetGetProductCategoriesForSKUResult()) { categories = CreateCategories(response.GetProductCategoriesForSKUResult.Self); } categoriesPerSku.Add(sku, categories); } SendReply(info, command, resp => resp.CategoriesBySku = categoriesPerSku); }
public GetProductCategoriesForSKUResponse InvokeGetProductCategoriesForSKU(string sellerId, string mwsAuthToken, string marketplaceId, string sellerSKU, out APIResults results) { try { // Create a request. GetProductCategoriesForSKURequest request = new GetProductCategoriesForSKURequest(); request.SellerId = sellerId; request.MWSAuthToken = mwsAuthToken; request.MarketplaceId = marketplaceId; request.SellerSKU = sellerSKU; GetProductCategoriesForSKUResponse output = this.productClient.GetProductCategoriesForSKU(request); results = new APIResults((IMWSResponse)output); return(output); } catch (MarketplaceWebServiceProductsException ex) { results = new APIResults(ex); throw ex; } }
/// <summary> /// Gets categories information for a product identified by /// the SellerId and SKU. /// /// </summary> /// <param name="service">Instance of MarketplaceWebServiceProducts service</param> /// <param name="request">GetProductCategoriesForSKURequest request</param> public static void InvokeGetProductCategoriesForSKU(MarketplaceWebServiceProducts service, GetProductCategoriesForSKURequest request) { try { GetProductCategoriesForSKUResponse response = service.GetProductCategoriesForSKU(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetProductCategoriesForSKUResponse"); if (response.IsSetGetProductCategoriesForSKUResult()) { Console.WriteLine(" GetProductCategoriesForSKUResult"); GetProductCategoriesForSKUResult getProductCategoriesForSKUResult = response.GetProductCategoriesForSKUResult; List <Categories> selfList = getProductCategoriesForSKUResult.Self; foreach (Categories self in selfList) { Console.WriteLine(" Self"); if (self.IsSetProductCategoryId()) { Console.WriteLine(" ProductCategoryId"); Console.WriteLine(" {0}", self.ProductCategoryId); } if (self.IsSetProductCategoryName()) { Console.WriteLine(" ProductCategoryName"); Console.WriteLine(" {0}", self.ProductCategoryName); } } } if (response.IsSetResponseMetadata()) { Console.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { Console.WriteLine(" RequestId"); Console.WriteLine(" {0}", responseMetadata.RequestId); } } Console.WriteLine(" ResponseHeaderMetadata"); Console.WriteLine(" RequestId"); Console.WriteLine(" " + response.ResponseHeaderMetadata.RequestId); Console.WriteLine(" ResponseContext"); Console.WriteLine(" " + response.ResponseHeaderMetadata.ResponseContext); Console.WriteLine(" Timestamp"); Console.WriteLine(" " + response.ResponseHeaderMetadata.Timestamp); Console.WriteLine(); } catch (MarketplaceWebServiceProductsException ex) { Console.WriteLine("Caught Exception: " + ex.Message); Console.WriteLine("Response Status Code: " + ex.StatusCode); Console.WriteLine("Error Code: " + ex.ErrorCode); Console.WriteLine("Error Type: " + ex.ErrorType); Console.WriteLine("Request ID: " + ex.RequestId); Console.WriteLine("XML: " + ex.XML); Console.WriteLine("ResponseHeaderMetadata: " + ex.ResponseHeaderMetadata); } }