/// <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);
        }
Beispiel #2
0
        public GetProductCategoriesForSKUResponse InvokeGetProductCategoriesForSKU()
        {
            // Create a request.
            GetProductCategoriesForSKURequest request = new GetProductCategoriesForSKURequest();

            request.SellerId = sellerId;

            request.MWSAuthToken = mwsAuthToken;

            request.MarketplaceId = marketplaceId;
            string sellerSKU = "example";

            request.SellerSKU = sellerSKU;
            return(this.client.GetProductCategoriesForSKU(request));
        }
Beispiel #3
0
        /**
         * Convert GetProductCategoriesForSKURequest to name value pairs
         */
        private IDictionary <String, String> ConvertGetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
        {
            IDictionary <String, String> parameters = new Dictionary <String, String>();

            parameters.Add("Action", "GetProductCategoriesForSKU");
            if (request.IsSetSellerId())
            {
                parameters.Add("SellerId", request.SellerId);
            }
            if (request.IsSetMarketplaceId())
            {
                parameters.Add("MarketplaceId", request.MarketplaceId);
            }
            if (request.IsSetSellerSKU())
            {
                parameters.Add("SellerSKU", request.SellerSKU);
            }

            return(parameters);
        }
Beispiel #4
0
 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;
     }
 }
Beispiel #5
0
 public GetProductCategoriesForSKUResponse GetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
 {
     return(newResponse <GetProductCategoriesForSKUResponse>());
 }
Beispiel #6
0
 /// <summary>
 /// Get Product Categories For SKU
 /// </summary>
 /// <param name="request">Get Product Categories For SKU  request</param>
 /// <returns>Get Product Categories For SKU  Response from the service</returns>
 /// <remarks>
 /// Gets categories information for a product identified by
 /// the SellerId and SKU.
 ///
 /// </remarks>
 public GetProductCategoriesForSKUResponse GetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
 {
     return(Invoke <GetProductCategoriesForSKUResponse>(ConvertGetProductCategoriesForSKU(request)));
 }
 public GetProductCategoriesForSKUResponse GetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
 {
     return(connection.Call(
                new MarketplaceWebServiceProductsClient.Request <GetProductCategoriesForSKUResponse>("GetProductCategoriesForSKU", typeof(GetProductCategoriesForSKUResponse), servicePath),
                request));
 }
Beispiel #8
0
 public Task <GetProductCategoriesForSKUResponse> GetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
 {
     return(Task.Run(() => newResponse <GetProductCategoriesForSKUResponse>()));
 }
 /// <summary>
 /// Get Product Categories For SKU
 /// </summary>
 /// <param name="request">Get Product Categories For SKU  request</param>
 /// <returns>Get Product Categories For SKU  Response from the service</returns>
 /// <remarks>
 /// Gets categories information for a product identified by
 /// the SellerId and SKU.
 ///
 /// </remarks>
 public GetProductCategoriesForSKUResponse GetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
 {
     return(Invoke <GetProductCategoriesForSKUResponse>("GetProductCategoriesForSKUResponse.xml"));
 }
 public Task <GetProductCategoriesForSKUResponse> GetProductCategoriesForSKU(GetProductCategoriesForSKURequest request)
 {
     return(Task.Run(() => this.connection.Call(
                         new ImwsProductsServiceClient.Request <GetProductCategoriesForSKUResponse>("GetProductCategoriesForSKU", typeof(GetProductCategoriesForSKUResponse), this.servicePath),
                         request)));
 }
Beispiel #11
0
        /// <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);
            }
        }