コード例 #1
0
        private void GetOrdersByNextToken(AmazonOrdersRequestInfo requestInfo, string nextToken, ActionAccessType access, RequestsCounterData responseCounter, Func <List <AmazonOrderItem>, bool> func)
        {
            var sellerId = requestInfo.MerchantId;

            var req = new ListOrdersByNextTokenRequest {
                NextToken    = nextToken,
                SellerId     = sellerId,
                MWSAuthToken = requestInfo.MWSAuthToken
            };
            var response = AmazonWaitBeforeRetryHelper.DoServiceAction(
                requestInfo.ErrorRetryingInfo,
                ListOrdersTrapForThrottling,
                "ListOrdersByNextToken",
                access,
                responseCounter,
                () => _Service.ListOrdersByNextToken(req));

            if (response != null && response.IsSetListOrdersByNextTokenResult())
            {
                var result = response.ListOrdersByNextTokenResult;
                if (result.IsSetOrders())
                {
                    var ordersList = ParseOrdersInfo(result.Orders, sellerId, access, requestInfo.CustomerId);
                    func(ordersList);
                }

                if (result.IsSetNextToken())
                {
                    GetOrdersByNextToken(requestInfo, result.NextToken, access, responseCounter, func);
                }
            }
        }
コード例 #2
0
 public string InvokeListOrdersByNextToken(string nextToken)
 {
     try
     {
         Console.WriteLine("Starting {0} at {1}", System.Reflection.MethodBase.GetCurrentMethod().Name, DateTime.Now);
         // Create a request.
         ListOrdersByNextTokenRequest request = new ListOrdersByNextTokenRequest();
         request.SellerId     = api.SellerId;
         request.MWSAuthToken = api.MWSAuthToken;
         request.NextToken    = nextToken;
         response             = client.ListOrdersByNextToken(request);
         Console.WriteLine("Response:");
         rhmd = response.ResponseHeaderMetadata;
         // Is recommended logging the request id and timestamp of every call.
         Console.WriteLine("RequestId: " + rhmd.RequestId);
         Console.WriteLine("Timestamp: " + rhmd.Timestamp);
         string responseXml = response.ToXML();
         Console.WriteLine(responseXml);
         return(responseXml);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         throw ex;
     }
 }
コード例 #3
0
        public ListOrdersByNextTokenResponse InvokeListOrdersByNextToken(string nextToken)
        {
            // Create a request.
            ListOrdersByNextTokenRequest request = new ListOrdersByNextTokenRequest();

            request.SellerId  = SellerId;
            request.NextToken = nextToken;
            return(_client.ListOrdersByNextToken(request));
        }
コード例 #4
0
        private ListOrdersByNextTokenResponse InvokeListOrdersByNextToken(string nextToken)
        {
            // Create a request.
            ListOrdersByNextTokenRequest request = new ListOrdersByNextTokenRequest();

            request.SellerId     = sellerId;
            request.MWSAuthToken = mwsAuthToken;
            request.NextToken    = nextToken;
            return(this.client.ListOrdersByNextToken(request));
        }
        public static ListOrdersByNextTokenResponse InvokeListOrdersByNextToken(ServiceCliamDefinition serviceCliamDefinition, string nextToken)
        {
            // Create a request.
            ListOrdersByNextTokenRequest request = new ListOrdersByNextTokenRequest();

            request.SellerId     = serviceCliamDefinition.SellerId;
            request.MWSAuthToken = serviceCliamDefinition.AuthToken;
            request.NextToken    = nextToken;
            return(client.ListOrdersByNextToken(request));
        }
コード例 #6
0
        public ListOrdersByNextTokenResponse InvokeListOrdersByNextToken()
        {
            // Create a request.
            ListOrdersByNextTokenRequest request = new ListOrdersByNextTokenRequest();
            string sellerId = "example";

            request.SellerId = sellerId;
            string nextToken = "example";

            request.NextToken = nextToken;
            return(this.client.ListOrdersByNextToken(request));
        }
コード例 #7
0
        /// <summary>
        /// Handles the specified command.
        /// </summary>
        /// <param name="command">The command.</param>
        public async void Handle(AmazonGetOrders3dPartyCommand command)
        {
            InfoAccumulator info = new InfoAccumulator();

            ListOrdersRequest request = new ListOrdersRequest {
                MWSAuthToken  = command.AuthorizationToken,
                MarketplaceId = new List <string>(command.MarketplaceId),
                SellerId      = command.SellerId,
                CreatedAfter  = command.DateFrom.ToUniversalTime()
            };

            //get first page
            ListOrdersResponse response = await AmazonService.Orders.ListOrders(request);

            List <IEnumerable <AmazonOrderItemAndPayments> > results = new List <IEnumerable <AmazonOrderItemAndPayments> >();

            if (response.IsSetListOrdersResult())
            {
                //process first page
                var orders = CreateOrders(response.ListOrdersResult);
                results.Add(orders);

                //get next pages
                string nextToken = response.ListOrdersResult.NextToken;
                while (StringUtils.IsNotEmpty(nextToken))
                {
                    var nextRequest = new ListOrdersByNextTokenRequest {
                        MWSAuthToken = command.AuthorizationToken,
                        NextToken    = nextToken,
                        SellerId     = command.SellerId
                    };

                    //get next page
                    ListOrdersByNextTokenResponse nextResponse = await AmazonService.Orders.ListOrdersByNextToken(nextRequest);

                    if (nextResponse != null && nextResponse.IsSetListOrdersByNextTokenResult())
                    {
                        //process next page results
                        var nextOrders = nextResponse.ListOrdersByNextTokenResult.Orders.Select(CreateAmazonOrderItem);
                        results.Add(nextOrders);
                        nextToken = nextResponse.ListOrdersByNextTokenResult.NextToken;
                    }
                    else
                    {
                        nextToken = null;
                    }
                }
            }

            SendReply(info, command, resp => resp.OrderPayments = results.SelectMany(o => o).ToArray());
        }
コード例 #8
0
        public ListOrdersByNextTokenResponse InvokeListOrdersByNextToken()
        {
            // Create a request.
            var request  = new ListOrdersByNextTokenRequest();
            var sellerId = "example";

            request.SellerId = sellerId;
            var mwsAuthToken = "example";

            request.MWSAuthToken = mwsAuthToken;
            var nextToken = "example";

            request.NextToken = nextToken;
            return(_client.ListOrdersByNextToken(request));
        }
コード例 #9
0
        /**
         * Convert ListOrdersByNextTokenRequest to name value pairs
         */
        private IDictionary <String, String> ConvertListOrdersByNextToken(ListOrdersByNextTokenRequest request)
        {
            IDictionary <String, String> parameters = new Dictionary <String, String>();

            parameters.Add("Action", "ListOrdersByNextToken");
            if (request.IsSetSellerId())
            {
                parameters.Add("SellerId", request.SellerId);
            }
            if (request.IsSetNextToken())
            {
                parameters.Add("NextToken", request.NextToken);
            }

            return(parameters);
        }
コード例 #10
0
        /// <summary>
        /// Fetches all orders created in the given time period and processes them locally.
        /// <param name="startTime">The starting time period of orders to fetch.</param>
        /// <param name="endTime">The ending time period of orders to fetch.</param>
        public void FetchOrders(DateTime startTime, DateTime endTime)
        {
            ListOrdersRequest request = new ListOrdersRequest();

            request.CreatedAfter = startTime;
            if (endTime != DateTime.MinValue)
            {
                request.CreatedBefore = endTime;
            }
            request.SellerId         = mwsSellerId;
            request.MarketplaceId    = new MarketplaceIdList();
            request.MarketplaceId.Id = new List <string>();
            foreach (string marketplaceId in mwsMarketplaceIdList)
            {
                request.MarketplaceId.Id.Add(marketplaceId);
            }

            List <Order>       orderList = new List <Order>();
            ListOrdersResponse response  = null;

            OrderFetcher.InvokeRetriable(LIST_ORDERS_DEFAULT_THROTTLE_LIMIT, delegate()
            {
                response = mwsService.ListOrders(request);
                ProcessOrders(response.ListOrdersResult.Orders.Order);
            });

            String nextTokenString = response.ListOrdersResult.NextToken;

            while (!string.IsNullOrEmpty(nextTokenString))
            {
                // If NextToken is set, continue looping through the orders.
                ListOrdersByNextTokenRequest nextRequest = new ListOrdersByNextTokenRequest();
                nextRequest.NextToken = nextTokenString;
                nextRequest.SellerId  = mwsSellerId;

                ListOrdersByNextTokenResponse nextResponse = null;
                OrderFetcher.InvokeRetriable(LIST_ORDERS_DEFAULT_THROTTLE_LIMIT, delegate()
                {
                    nextResponse = mwsService.ListOrdersByNextToken(nextRequest);
                    ProcessOrders(nextResponse.ListOrdersByNextTokenResult.Orders.Order);
                });

                nextTokenString = nextResponse.ListOrdersByNextTokenResult.NextToken;
            }
        }
コード例 #11
0
        public static DataSet ListAmazonOrderHeaderByNextToken(string accountName, string nextToken, string merchantId, string marketplaceId, string accessKeyId, string secretAccessKey)
        {
            DataSet      amazonOrderHeaderListDs = new DataSet();
            const string applicationName         = "<Your Application Name>";
            const string applicationVersion      = "<Your Application Version>";
            ListOrdersByNextTokenRequest request = new ListOrdersByNextTokenRequest();
            string sellerId = merchantId;

            request.SellerId  = sellerId;
            request.NextToken = nextToken;
            MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();

            config.ServiceURL = "https://mws.amazonservices.com";
            MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(accessKeyId, secretAccessKey, applicationName, applicationVersion, config);

            try
            {
                IMWSResponse response = null;
                response = client.ListOrdersByNextToken(request);
                ResponseHeaderMetadata rhmd = response.ResponseHeaderMetadata;
                Console.WriteLine("RequestId: " + rhmd.RequestId);
                Console.WriteLine("Timestamp: " + rhmd.Timestamp);
                string responseXml = response.ToXML();
                System.IO.File.WriteAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\AmazonOrderHeaderListNextToken.xml", responseXml);
                amazonOrderHeaderListDs.ReadXml(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + "\\AmazonOrderHeaderListNextToken.xml", XmlReadMode.InferSchema);
                return(amazonOrderHeaderListDs);
            }
            catch (MarketplaceWebServiceOrdersException ex)
            {
                // Exception properties are important for diagnostics.
                ResponseHeaderMetadata rhmd = ex.ResponseHeaderMetadata;
                Console.WriteLine("Service Exception:");
                if (rhmd != null)
                {
                    Console.WriteLine("RequestId: " + rhmd.RequestId);
                    Console.WriteLine("Timestamp: " + rhmd.Timestamp);
                }
                Console.WriteLine("Message: " + ex.Message);
                Console.WriteLine("StatusCode: " + ex.StatusCode);
                Console.WriteLine("ErrorCode: " + ex.ErrorCode);
                Console.WriteLine("ErrorType: " + ex.ErrorType);
                throw ex;
            }
        }
コード例 #12
0
        public ListOrdersByNextTokenResponse InvokeListOrdersByNextToken(PXGraph graph, ServiceCallParameters objParams)
        {
            ListOrdersByNextTokenRequest  request = new ListOrdersByNextTokenRequest();
            ListOrdersByNextTokenResponse responseOrderByNextToken = new ListOrdersByNextTokenResponse();

            try
            {
                request.SellerId         = objParams.objSOAmazonSetup.SellerId;
                request.MWSAuthToken     = objParams.objSOAmazonSetup.AuthToken;
                request.NextToken        = objParams.nextToken;
                responseOrderByNextToken = this.clientOrder.ListOrdersByNextToken(request);
            }
            catch (Exception ex)
            {
                if (ex is MarketplaceWebServiceOrdersException)
                {
                    MarketplaceWebServiceOrdersException exception = ex as MarketplaceWebServiceOrdersException;
                    if (!string.IsNullOrEmpty(exception.ErrorCode) && exception.ErrorCode.ToLower().Trim() == SOMessages.requestThrottled)
                    {
                        Thread.Sleep(SOHelper.DelayProcess(graph, SOConstants.apiListOrdersByNextToken));
                        responseOrderByNextToken = InvokeListOrdersByNextToken(graph, objParams);
                    }
                    else
                    {
                        throw new PXException(!string.IsNullOrEmpty(ex.Message) ? ex.Message :
                                              ex.InnerException != null && ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message
                            : SOConstants.exceptionIsEmpty);
                    }
                }
                else
                {
                    throw new PXException(!string.IsNullOrEmpty(ex.Message) ? ex.Message :
                                          ex.InnerException != null && ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message
                            : SOConstants.exceptionIsEmpty);
                }
            }
            return(responseOrderByNextToken);
        }
コード例 #13
0
        /// <summary>
        /// If ListOrders returns a nextToken, thus indicating that there are more orders
        /// than returned that matched the given filter criteria, ListOrdersByNextToken
        /// can be used to retrieve those other orders using that nextToken.
        ///
        /// </summary>
        /// <param name="service">Instance of MarketplaceWebServiceOrders service</param>
        /// <param name="request">ListOrdersByNextTokenRequest request</param>
        public static void InvokeListOrdersByNextToken(MarketplaceWebServiceOrders service, ListOrdersByNextTokenRequest request)
        {
            try
            {
                ListOrdersByNextTokenResponse response = service.ListOrdersByNextToken(request);


                Console.WriteLine("Service Response");
                Console.WriteLine("=============================================================================");
                Console.WriteLine();

                Console.WriteLine("        ListOrdersByNextTokenResponse");
                if (response.IsSetListOrdersByNextTokenResult())
                {
                    Console.WriteLine("            ListOrdersByNextTokenResult");
                    ListOrdersByNextTokenResult listOrdersByNextTokenResult = response.ListOrdersByNextTokenResult;
                    if (listOrdersByNextTokenResult.IsSetNextToken())
                    {
                        Console.WriteLine("                NextToken");
                        Console.WriteLine("                    {0}", listOrdersByNextTokenResult.NextToken);
                    }
                    if (listOrdersByNextTokenResult.IsSetCreatedBefore())
                    {
                        Console.WriteLine("                CreatedBefore");
                        Console.WriteLine("                    {0}", listOrdersByNextTokenResult.CreatedBefore);
                    }
                    if (listOrdersByNextTokenResult.IsSetLastUpdatedBefore())
                    {
                        Console.WriteLine("                LastUpdatedBefore");
                        Console.WriteLine("                    {0}", listOrdersByNextTokenResult.LastUpdatedBefore);
                    }
                    if (listOrdersByNextTokenResult.IsSetOrders())
                    {
                        Console.WriteLine("                Orders");
                        OrderList    orders    = listOrdersByNextTokenResult.Orders;
                        List <Order> orderList = orders.Order;
                        foreach (Order order in orderList)
                        {
                            Console.WriteLine("                    Order");
                            if (order.IsSetAmazonOrderId())
                            {
                                Console.WriteLine("                        AmazonOrderId");
                                Console.WriteLine("                            {0}", order.AmazonOrderId);
                            }
                            if (order.IsSetSellerOrderId())
                            {
                                Console.WriteLine("                        SellerOrderId");
                                Console.WriteLine("                            {0}", order.SellerOrderId);
                            }
                            if (order.IsSetPurchaseDate())
                            {
                                Console.WriteLine("                        PurchaseDate");
                                Console.WriteLine("                            {0}", order.PurchaseDate);
                            }
                            if (order.IsSetLastUpdateDate())
                            {
                                Console.WriteLine("                        LastUpdateDate");
                                Console.WriteLine("                            {0}", order.LastUpdateDate);
                            }
                            if (order.IsSetOrderStatus())
                            {
                                Console.WriteLine("                        OrderStatus");
                                Console.WriteLine("                            {0}", order.OrderStatus);
                            }
                            if (order.IsSetFulfillmentChannel())
                            {
                                Console.WriteLine("                        FulfillmentChannel");
                                Console.WriteLine("                            {0}", order.FulfillmentChannel);
                            }
                            if (order.IsSetSalesChannel())
                            {
                                Console.WriteLine("                        SalesChannel");
                                Console.WriteLine("                            {0}", order.SalesChannel);
                            }
                            if (order.IsSetOrderChannel())
                            {
                                Console.WriteLine("                        OrderChannel");
                                Console.WriteLine("                            {0}", order.OrderChannel);
                            }
                            if (order.IsSetShipServiceLevel())
                            {
                                Console.WriteLine("                        ShipServiceLevel");
                                Console.WriteLine("                            {0}", order.ShipServiceLevel);
                            }
                            if (order.IsSetShippingAddress())
                            {
                                Console.WriteLine("                        ShippingAddress");
                                Address shippingAddress = order.ShippingAddress;
                                if (shippingAddress.IsSetName())
                                {
                                    Console.WriteLine("                            Name");
                                    Console.WriteLine("                                {0}", shippingAddress.Name);
                                }
                                if (shippingAddress.IsSetAddressLine1())
                                {
                                    Console.WriteLine("                            AddressLine1");
                                    Console.WriteLine("                                {0}", shippingAddress.AddressLine1);
                                }
                                if (shippingAddress.IsSetAddressLine2())
                                {
                                    Console.WriteLine("                            AddressLine2");
                                    Console.WriteLine("                                {0}", shippingAddress.AddressLine2);
                                }
                                if (shippingAddress.IsSetAddressLine3())
                                {
                                    Console.WriteLine("                            AddressLine3");
                                    Console.WriteLine("                                {0}", shippingAddress.AddressLine3);
                                }
                                if (shippingAddress.IsSetCity())
                                {
                                    Console.WriteLine("                            City");
                                    Console.WriteLine("                                {0}", shippingAddress.City);
                                }
                                if (shippingAddress.IsSetCounty())
                                {
                                    Console.WriteLine("                            County");
                                    Console.WriteLine("                                {0}", shippingAddress.County);
                                }
                                if (shippingAddress.IsSetDistrict())
                                {
                                    Console.WriteLine("                            District");
                                    Console.WriteLine("                                {0}", shippingAddress.District);
                                }
                                if (shippingAddress.IsSetStateOrRegion())
                                {
                                    Console.WriteLine("                            StateOrRegion");
                                    Console.WriteLine("                                {0}", shippingAddress.StateOrRegion);
                                }
                                if (shippingAddress.IsSetPostalCode())
                                {
                                    Console.WriteLine("                            PostalCode");
                                    Console.WriteLine("                                {0}", shippingAddress.PostalCode);
                                }
                                if (shippingAddress.IsSetCountryCode())
                                {
                                    Console.WriteLine("                            CountryCode");
                                    Console.WriteLine("                                {0}", shippingAddress.CountryCode);
                                }
                                if (shippingAddress.IsSetPhone())
                                {
                                    Console.WriteLine("                            Phone");
                                    Console.WriteLine("                                {0}", shippingAddress.Phone);
                                }
                            }
                            if (order.IsSetOrderTotal())
                            {
                                Console.WriteLine("                        OrderTotal");
                                Money orderTotal = order.OrderTotal;
                                if (orderTotal.IsSetCurrencyCode())
                                {
                                    Console.WriteLine("                            CurrencyCode");
                                    Console.WriteLine("                                {0}", orderTotal.CurrencyCode);
                                }
                                if (orderTotal.IsSetAmount())
                                {
                                    Console.WriteLine("                            Amount");
                                    Console.WriteLine("                                {0}", orderTotal.Amount);
                                }
                            }
                            if (order.IsSetNumberOfItemsShipped())
                            {
                                Console.WriteLine("                        NumberOfItemsShipped");
                                Console.WriteLine("                            {0}", order.NumberOfItemsShipped);
                            }
                            if (order.IsSetNumberOfItemsUnshipped())
                            {
                                Console.WriteLine("                        NumberOfItemsUnshipped");
                                Console.WriteLine("                            {0}", order.NumberOfItemsUnshipped);
                            }
                            if (order.IsSetPaymentExecutionDetail())
                            {
                                Console.WriteLine("                        PaymentExecutionDetail");
                                PaymentExecutionDetailItemList    paymentExecutionDetail         = order.PaymentExecutionDetail;
                                List <PaymentExecutionDetailItem> paymentExecutionDetailItemList = paymentExecutionDetail.PaymentExecutionDetailItem;
                                foreach (PaymentExecutionDetailItem paymentExecutionDetailItem in paymentExecutionDetailItemList)
                                {
                                    Console.WriteLine("                            PaymentExecutionDetailItem");
                                    if (paymentExecutionDetailItem.IsSetPayment())
                                    {
                                        Console.WriteLine("                                Payment");
                                        Money payment = paymentExecutionDetailItem.Payment;
                                        if (payment.IsSetCurrencyCode())
                                        {
                                            Console.WriteLine("                                    CurrencyCode");
                                            Console.WriteLine("                                        {0}", payment.CurrencyCode);
                                        }
                                        if (payment.IsSetAmount())
                                        {
                                            Console.WriteLine("                                    Amount");
                                            Console.WriteLine("                                        {0}", payment.Amount);
                                        }
                                    }
                                    if (paymentExecutionDetailItem.IsSetPaymentMethod())
                                    {
                                        Console.WriteLine("                                PaymentMethod");
                                        Console.WriteLine("                                    {0}", paymentExecutionDetailItem.PaymentMethod);
                                    }
                                }
                            }
                            if (order.IsSetPaymentMethod())
                            {
                                Console.WriteLine("                        PaymentMethod");
                                Console.WriteLine("                            {0}", order.PaymentMethod);
                            }
                            if (order.IsSetMarketplaceId())
                            {
                                Console.WriteLine("                        MarketplaceId");
                                Console.WriteLine("                            {0}", order.MarketplaceId);
                            }
                            if (order.IsSetBuyerEmail())
                            {
                                Console.WriteLine("                        BuyerEmail");
                                Console.WriteLine("                            {0}", order.BuyerEmail);
                            }
                            if (order.IsSetBuyerName())
                            {
                                Console.WriteLine("                        BuyerName");
                                Console.WriteLine("                            {0}", order.BuyerName);
                            }
                            if (order.IsSetShipmentServiceLevelCategory())
                            {
                                Console.WriteLine("                        ShipmentServiceLevelCategory");
                                Console.WriteLine("                            {0}", order.ShipmentServiceLevelCategory);
                            }
                            if (order.IsSetShippedByAmazonTFM())
                            {
                                Console.WriteLine("                        ShippedByAmazonTFM");
                                Console.WriteLine("                            {0}", order.ShippedByAmazonTFM);
                            }
                            if (order.IsSetTFMShipmentStatus())
                            {
                                Console.WriteLine("                        TFMShipmentStatus");
                                Console.WriteLine("                            {0}", order.TFMShipmentStatus);
                            }
                        }
                    }
                }
                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 (MarketplaceWebServiceOrdersException 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);
            }
        }
コード例 #14
0
 public ListOrdersByNextTokenResponse ListOrdersByNextToken(ListOrdersByNextTokenRequest request)
 {
     return(NewResponse <ListOrdersByNextTokenResponse>());
 }
コード例 #15
0
        public void LeerPedidos(DateTime FechInicial, string cuenta, string OrderStatus)
        {
            int pagina = 1;

            this.Cuenta = cuenta;
            ListOrdersRequest request = new ListOrdersRequest();

            request.SellerId = MERCHANT_ID;

            string      format       = "MMM d, yyyy h:mm:ss tt PDT";
            CultureInfo provider     = CultureInfo.InvariantCulture;
            DateTime    now          = DateTime.Now.Add(new TimeSpan(0, -10, 0));
            DateTime    createdAfter = DateTime.ParseExact("Aug 10, 2017 2:42:18 PM PDT", format, provider);

            request.CreatedAfter  = createdAfter;
            request.CreatedBefore = now;


            List <string> orderStatus = new List <string>();

            orderStatus.Add(OrderStatus);
            request.OrderStatus = orderStatus;


            List <string> marketplaceId = new List <string>();

            marketplaceId.Add(MARKETPLACE_ID);
            request.MarketplaceId = marketplaceId;

            //List<string> fulfillmentChannel = new List<string>();
            //request.FulfillmentChannel = fulfillmentChannel;
            //List<string> paymentMethod = new List<string>();
            //request.PaymentMethod = paymentMethod;
            //string buyerEmail = "example";
            //request.BuyerEmail = buyerEmail;
            //string sellerOrderId = "example";
            //request.SellerOrderId = sellerOrderId;
            //decimal maxResultsPerPage = 1;
            //request.MaxResultsPerPage = maxResultsPerPage;
            //List<string> tfmShipmentStatus = new List<string>();
            //request.TFMShipmentStatus = tfmShipmentStatus;
            MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig
            {
                ServiceURL = "https://mws.amazonservices.es/Orders/2013-09-01"
            };
            MarketplaceWebServiceOrdersClient client = new MarketplaceWebServiceOrdersClient(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, "AppName", "0.0", config);
            ListOrdersResponse a = new ListOrdersResponse();
            bool retryRequest    = true;

            while (retryRequest == true)
            {
                retryRequest = false;
                try
                {
                    eventAntesPagina(new EventosAmazon {
                        pagina = pagina, linea = 0, retardo = 0
                    });
                    a = client.ListOrders(request);
                    eventDespuesPagina(new EventosAmazon {
                        pagina = pagina, linea = 0, retardo = 0
                    });
                }
                catch (MarketplaceWebServiceOrdersException ex)
                {
                    if (ex.ErrorCode.Contains("RequestThrottled"))
                    {
                        int retardo = 60000;
                        retryRequest = true;
                        eventAntesRetardoTroleo(new EventosAmazon {
                            pagina = pagina, linea = 0, retardo = retardo
                        });
                        System.Threading.Thread.Sleep(retardo);
                        eventDespuesRetardoTroleo?.Invoke(new EventosAmazon {
                            pagina = pagina, linea = 0, retardo = retardo
                        });
                    }
                    else
                    {
                        eventError?.Invoke(new EventosAmazon {
                            pagina = pagina, linea = 0, retardo = 0, error = ex.Detail
                        });
                    }
                }
            }


            //            foreach (Order order in a.ListOrdersResult.Orders)
            //                GrabarOrder(order, cuenta);
            Task t = new Task(
                () =>
            {
                Parallel.ForEach(a.ListOrdersResult.Orders, new ParallelOptions {
                    MaxDegreeOfParallelism = 2
                },
                                 order =>
                {
                    int numero = a.ListOrdersResult.Orders.IndexOf(order);
                    LeerLineasPedido(order, pagina, numero);
                    GrabarOrder(order, cuenta);
                });
            });

            t.Start();
            while (!t.IsCompleted)
            {
                Application.DoEvents();
            }
            string NextToken = a.ListOrdersResult.NextToken;

//            return;
            while (!string.IsNullOrEmpty(NextToken))
            {
                pagina++;
                ListOrdersByNextTokenRequest nextRequest = new ListOrdersByNextTokenRequest();
                nextRequest.NextToken = NextToken;
                nextRequest.SellerId  = request.SellerId;
                retryRequest          = true;
                ListOrdersByNextTokenResponse b = new ListOrdersByNextTokenResponse();
                while (retryRequest == true)
                {
                    retryRequest = false;
                    try
                    {
                        eventAntesPagina(new EventosAmazon {
                            pagina = pagina, linea = 0, retardo = 0
                        });
                        b = client.ListOrdersByNextToken(nextRequest);
                        eventDespuesPagina(new EventosAmazon {
                            pagina = pagina, linea = 0, retardo = 0
                        });
                        Task tn = new Task(
                            () =>
                        {
                            Parallel.ForEach(b.ListOrdersByNextTokenResult.Orders, new ParallelOptions {
                                MaxDegreeOfParallelism = 2
                            }, order =>
                            {
                                int numero = b.ListOrdersByNextTokenResult.Orders.IndexOf(order);
                                LeerLineasPedido(order, pagina, numero);
                                GrabarOrder(order, cuenta);
                            });
                        });
                        tn.Start();
                        while (!tn.IsCompleted)
                        {
                            Application.DoEvents();
                        }
                    }
                    catch (MarketplaceWebServiceOrdersException ex)
                    {
                        //The ListOrders and ListOrdersByNextToken operations together share a maximum request quota of six and a restore rate of one request every minute.
                        //                  Request quota
                        //                          The number of requests that you can submit at one time without throttling.The request quota decreases with every request you submit.The request quota increases at the restore rate.
                        //                  Restore rate
                        //                          The rate at which your request quota increases over time, up to the maximum request quota.
                        //                  Maximum request quota
                        //                          The maximum size that the request quota can reach.
                        if (ex.ErrorCode.Contains("RequestThrottled"))
                        {
                            int retardo = 60000;
                            retryRequest = true;
                            eventAntesRetardoTroleo(new EventosAmazon {
                                pagina = pagina, linea = 0, retardo = retardo
                            });
                            System.Threading.Thread.Sleep(retardo);
                            eventDespuesRetardoTroleo?.Invoke(new EventosAmazon {
                                pagina = pagina, linea = 0, retardo = retardo
                            });
                        }
                    }
                    if (b.IsSetListOrdersByNextTokenResult())
                    {
                        NextToken = b.ListOrdersByNextTokenResult.NextToken;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
コード例 #16
0
        public IEnumerable <MarketplaceOrder> GetMarketplaceOrders(DateTime createdAfter)
        {
            var marketplaceOrders = new List <MarketplaceOrder>();

            try
            {
                // init the Amazon web service
                var config = new MarketplaceWebServiceOrdersConfig {
                    ServiceURL = "https://mws.amazonservices.com"
                };
                config.SetUserAgent(_ApplicationName, _Version);
                _ordersClient = new MarketplaceWebServiceOrdersClient(_credential.AccessKeyId, _credential.SecretKey, config);

                Console.WriteLine("{0} fetching orders for {1}...", ChannelName, createdAfter);

                // create ListOrdersRequest object
                var listOrdersRequest = new ListOrdersRequest
                {
                    SellerId      = _credential.MerchantId,
                    MarketplaceId = new List <string> {
                        { _credential.MarketplaceId }
                    },
                    LastUpdatedAfter = createdAfter.Date
                };
                var listOrdersResponse = _ordersClient.ListOrders(listOrdersRequest);
                var ordersResult       = listOrdersResponse.ListOrdersResult.Orders;
                var nextToken          = listOrdersResponse.ListOrdersResult.NextToken;
                ListOrdersByNextTokenResponse nextOrderResponse = null;

                Console.WriteLine("{0} retrieved {1} orders and {2} next results page.", ChannelName, listOrdersResponse.ListOrdersResult.Orders.Count, !string.IsNullOrWhiteSpace(nextToken) ? "HAS" : "NO");

                do
                {
                    if (nextOrderResponse != null)
                    {
                        ordersResult = nextOrderResponse.ListOrdersByNextTokenResult.Orders;
                        nextToken    = nextOrderResponse.ListOrdersByNextTokenResult.NextToken;
                        Console.WriteLine("{0} retrieved {1} next orders and {2} next results page.", ChannelName, ordersResult.Count, !string.IsNullOrWhiteSpace(nextToken) ? "HAS" : "NO");
                    }

                    // Convert the orders to the marketplace contracts and get the items.
                    for (int i = 0; i < ordersResult.Count; ++i)
                    {
                        // The maximum request quota for ListOrderItems is 30 after that it restores at 2 per second.
                        // So if the order's that are being pulled exceed 30, then sleep for 2 seconds each one.
                        if (i > 30)
                        {
                            Thread.Sleep(2000);
                        }

                        marketplaceOrders.Add(convertOrderResponseToMarketplaceOrder(ordersResult[i]));
                    }

                    // do a rquest for the next page result of orders if next token is not null
                    if (!string.IsNullOrWhiteSpace(nextToken))
                    {
                        // pause at least 1 minute, this is the restore rate for ListOrdersByNextToken for every 6 quota
                        Thread.Sleep(61000);

                        var nextTokenRequest = new ListOrdersByNextTokenRequest {
                            SellerId = _credential.MerchantId, NextToken = nextToken
                        };
                        nextOrderResponse = _ordersClient.ListOrdersByNextToken(nextTokenRequest);
                    }
                } while (!string.IsNullOrWhiteSpace(nextToken));

                Console.WriteLine("{0} done fetching orders: {1} items", ChannelName, marketplaceOrders.Count);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error in getting orders for {0}! Error message: {1}", ChannelName, ex.Message);
                _logger.LogError(LogEntryType.AmazonOrdersProvider,
                                 string.Format("Error in retrieving orders for Amazon. Error message: {0}", ex.Message),
                                 ex.StackTrace);

                _emailService.SendEmailAdminException(subject: "Amazon - Get Marketplace Orders Error",
                                                      exParam: ex,
                                                      useDefaultTemplate: true,
                                                      url: "GetMarketplaceOrders Method",
                                                      userName: "******");
            }

            return(marketplaceOrders);
        }
コード例 #17
0
        public void SyncOrders(ERPContext context, string accountName, DateTime createdAfter, DateTime createdBefore, List <EbayOrderdetail> orderDetails)
        {
            if (!sellerIdDictionary.ContainsKey(accountName))
            {
                m_logger.Error(accountName + " does not exist.");
                return;
            }
            m_logger.Info("Sync orders of " + accountName);
            try
            {
                ListOrdersRequest request = new ListOrdersRequest();
                request.SellerId          = sellerIdDictionary[accountName];
                request.MWSAuthToken      = mwsAuthTokenDictionary[accountName];
                request.LastUpdatedAfter  = createdAfter;
                request.LastUpdatedBefore = createdBefore;
                request.OrderStatus       = new List <string>();
                request.OrderStatus.Add("Unshipped");
                request.OrderStatus.Add("PartiallyShipped");
                List <string> marketplaceIds = new List <string>();
                marketplaceIds.Add(marketplaceId);
                request.MarketplaceId = marketplaceIds;

                int retryCount = 0;
                ListOrdersResponse response = null;
                while (retryCount <= m_maxRetry && response == null)
                {
                    if (retryCount > 0)
                    {
                        Thread.Sleep(TimeSpan.FromSeconds(retryCount * 2));
                    }
                    try
                    {
                        response = client.ListOrders(request);
                    }
                    catch (Exception e)
                    {
                        if (retryCount > m_maxRetry)
                        {
                            throw e;
                        }
                        retryCount++;
                    }
                }

                ProcessOrders(context, accountName, response.ListOrdersResult.Orders, orderDetails);
                string nextToken = response.ListOrdersResult.NextToken;
                while (nextToken != null)
                {
                    ListOrdersByNextTokenRequest request1 = new ListOrdersByNextTokenRequest();
                    request1.SellerId     = sellerIdDictionary[accountName];
                    request1.MWSAuthToken = mwsAuthTokenDictionary[accountName];
                    request1.NextToken    = nextToken;

                    retryCount = 0;
                    ListOrdersByNextTokenResponse response1 = null;
                    while (retryCount <= m_maxRetry && response == null)
                    {
                        if (retryCount > 0)
                        {
                            Thread.Sleep(TimeSpan.FromSeconds(retryCount * 2));
                        }
                        try
                        {
                            response1 = client.ListOrdersByNextToken(request1);
                        }
                        catch (Exception e)
                        {
                            if (retryCount > m_maxRetry)
                            {
                                throw e;
                            }
                            retryCount++;
                        }
                    }

                    ProcessOrders(context, accountName, response1.ListOrdersByNextTokenResult.Orders, orderDetails);
                    nextToken = response1.ListOrdersByNextTokenResult.NextToken;
                }
            }
            catch (Exception e)
            {
                m_logger.Error(e.Message);
            }
        }
コード例 #18
0
 public ListOrdersByNextTokenResponse ListOrdersByNextToken(ListOrdersByNextTokenRequest request)
 {
     return(connection.Call(
                new MarketplaceWebServiceOrdersClient.Request <ListOrdersByNextTokenResponse>("ListOrdersByNextToken", typeof(ListOrdersByNextTokenResponse), servicePath),
                request));
 }
コード例 #19
0
        public static void GetOrderList()
        {
            dt = new DataTable();
            dt.Columns.Add("OrderId");
            MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();
            string SellerId           = "A3U1G59YKB47LS";
            string MarketplaceId      = "A1VC38T7YXB528";
            string AccessKeyId        = "AKIAJFRPIMOTC4CJGHLQ";
            string SecretKeyId        = "4KI9yuXr7Ni64iFpdjnW1dw3LNdNXIn4rgOnNrZQ";
            string ApplicationVersion = "1.0";
            string ApplicationName    = "ラスタスポーツ";
            string MWSAuthToken       = "amzn.mws.fea748c0-bfe0-4039-0cc0-88b6ce5c0058";
            string serviceURL         = "https://mws.amazonservices.jp";
            string strbuff            = string.Empty;

            config.ServiceURL = serviceURL;
            MarketplaceWebServiceOrders.MarketplaceWebServiceOrders client = new MarketplaceWebServiceOrdersClient(
                AccessKeyId,
                SecretKeyId,
                ApplicationName,
                ApplicationVersion,
                config);


            //ListOrder
            try
            {
                ListOrdersRequest request = new ListOrdersRequest();
                request.SellerId     = SellerId;
                request.CreatedAfter = DateTime.Now.AddDays(-1);
                List <string> lstMarketplace = new List <string>();
                lstMarketplace.Add(MarketplaceId);
                request.MarketplaceId = lstMarketplace;
                request.MWSAuthToken  = MWSAuthToken;
                ListOrdersResponse response = client.ListOrders(request);
                if (response.IsSetListOrdersResult())
                {
                    ListOrdersResult listOrdersResult = response.ListOrdersResult;
                    if (listOrdersResult.IsSetOrders())
                    {
                        List <Order> orders = listOrdersResult.Orders;
                        foreach (Order order in orders)
                        {
                            dt.Rows.Add(order.AmazonOrderId);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                var msge = ex.Message;
            }
            //// ListOrderByNextToken
            try
            {
                ListOrdersRequest request = new ListOrdersRequest();
                request.SellerId     = SellerId;
                request.CreatedAfter = DateTime.Now.AddDays(-1);
                List <string> lstMarketplace = new List <string>();
                lstMarketplace.Add(MarketplaceId);
                request.MarketplaceId     = lstMarketplace;
                request.MaxResultsPerPage = 14;
                request.MWSAuthToken      = MWSAuthToken;
                ListOrdersResponse response = client.ListOrders(request);
                if (response.IsSetListOrdersResult())
                {
                    ListOrdersResult listOrdersResult = response.ListOrdersResult;
                    if (listOrdersResult.IsSetOrders())
                    {
                        if (listOrdersResult.NextToken != null)
                        {
                            ListOrdersByNextTokenRequest request1 = new ListOrdersByNextTokenRequest();

                            request1.SellerId     = SellerId;
                            request1.MWSAuthToken = MWSAuthToken;
                            request1.NextToken    = listOrdersResult.NextToken;
                            ListOrdersByNextTokenResponse response1 = client.ListOrdersByNextToken(request1);
                            if (response1.IsSetListOrdersByNextTokenResult())
                            {
                                ListOrdersByNextTokenResult listOrdersByNextResult = response1.ListOrdersByNextTokenResult;
                                if (listOrdersByNextResult.IsSetOrders())
                                {
                                    List <Order> orders = listOrdersByNextResult.Orders;
                                    foreach (Order order in orders)
                                    {
                                        dt.Rows.Add(order.AmazonOrderId);
                                        //   strbuff += order.AmazonOrderId + System.Environment.NewLine;
                                    }
                                }
                            }
                        }
                    }
                    var val = strbuff;
                }
                Environment.Exit(0);
            }
            catch (Exception ex)
            {
            }

            // //List Order Item
            //try
            //{
            //    foreach (DataRow dr in dt.Rows)
            //    {
            //        ListOrderItemsRequest request = new ListOrderItemsRequest();
            //        request.SellerId = SellerId;
            //        request.AmazonOrderId = dr["OrderId"].ToString();
            //        request.MWSAuthToken = MWSAuthToken;
            //        ListOrderItemsResponse response = client.ListOrderItems(request);
            //        if (response.IsSetListOrderItemsResult())
            //        {
            //            ListOrderItemsResult listOrderItemsResult = response.ListOrderItemsResult;
            //            if (listOrderItemsResult.IsSetOrderItems())
            //            {
            //                List<OrderItem> orderItems = listOrderItemsResult.OrderItems;
            //                foreach (OrderItem orderItem in orderItems)
            //                {
            //                    strbuff += "商品名:" + orderItem.Title + System.Environment.NewLine;
            //                }
            //            }
            //        }
            //    }
            //}
            //catch (Exception ex)
            //{

            //}
            //// ListOrderItem_byNextToken
            try
            {
                foreach (DataRow dr in dt.Rows)
                {
                    ListOrderItemsRequest request = new ListOrderItemsRequest();
                    request.SellerId      = SellerId;
                    request.AmazonOrderId = dr["OrderId"].ToString();
                    request.MWSAuthToken  = MWSAuthToken;

                    ListOrderItemsResponse response = client.ListOrderItems(request);
                    if (response.IsSetListOrderItemsResult())
                    {
                        ListOrderItemsResult listOrderItemsResult = response.ListOrderItemsResult;
                        if (listOrderItemsResult.NextToken != null)
                        {
                            ListOrderItemsByNextTokenRequest request1 = new ListOrderItemsByNextTokenRequest();
                            request1.SellerId     = SellerId;
                            request1.MWSAuthToken = MWSAuthToken;
                            request1.NextToken    = listOrderItemsResult.NextToken;

                            ListOrderItemsByNextTokenResponse response1 = client.ListOrderItemsByNextToken(request1);
                            if (response1.IsSetListOrderItemsByNextTokenResult())
                            {
                                ListOrderItemsByNextTokenResult listOrderByNextItemsResult = response1.ListOrderItemsByNextTokenResult;
                                if (listOrderByNextItemsResult.IsSetOrderItems())
                                {
                                    List <OrderItem> orderItems = listOrderItemsResult.OrderItems;
                                    foreach (OrderItem orderItem in orderItems)
                                    {
                                        if (orderItem.IsSetOrderItemId())
                                        {
                                            strbuff += "商品名:" + orderItem.Title + System.Environment.NewLine;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }

            //// GetOrder
            //try
            //{
            //    foreach (DataRow dr in dt.Rows)
            //    {
            //        GetOrderRequest request = new GetOrderRequest();
            //        request.SellerId = SellerId;
            //        request.MWSAuthToken = MWSAuthToken;
            //        List<string> amazonorderId = new List<string>();
            //        amazonorderId.Add(dr["OrderId"].ToString());
            //        request.AmazonOrderId = amazonorderId;

            //        GetOrderResponse response = client.GetOrder(request);
            //        if (response.IsSetGetOrderResult())
            //        {
            //            List<Order> orders = response.GetOrderResult.Orders;
            //            foreach (Order order in orders)
            //            {
            //                strbuff += "購入者:" + order.AmazonOrderId + ","+ order.OrderStatus + System.Environment.NewLine;
            //            }
            //        }
            //    }
            //}

            //catch (Exception ex)
            //{

            //}

            //// GetService Status
            //try
            //{
            //    MarketplaceWebServiceOrdersConfig config1 = new MarketplaceWebServiceOrdersConfig();
            //    config1.ServiceURL = serviceURL;
            //    MarketplaceWebServiceOrders.MarketplaceWebServiceOrders client1 = new MarketplaceWebServiceOrdersClient(
            //                                                                            AccessKeyId,
            //                                                                            SecretKeyId,
            //                                                                            ApplicationName,
            //                                                                            ApplicationVersion,
            //                                                                            config1);
            //    MarketplaceWebServiceOrders.Model.GetServiceStatusRequest  request = new MarketplaceWebServiceOrders.Model.GetServiceStatusRequest();
            //    request.SellerId = SellerId;
            //    request.MWSAuthToken = MWSAuthToken;
            //    // MarketplaceWebServiceOrders.Model.GetServiceStatusRequest
            //    var response = client1.GetServiceStatus(request);
            //    if (response.IsSetGetServiceStatusResult())
            //    {
            //        strbuff = "処理状況:" + response.GetServiceStatusResult.Status;
            //    }
            //}
            //catch (Exception ex)
            //{

            //}
        }
コード例 #20
0
        // Public API ------------------------------------------------------------//


        /// <summary>
        /// List Orders By Next Token
        /// </summary>
        /// <param name="request">List Orders By Next Token  request</param>
        /// <returns>List Orders By Next Token  Response from the service</returns>
        /// <remarks>
        /// If ListOrders returns a nextToken, thus indicating that there are more orders
        /// than returned that matched the given filter criteria, ListOrdersByNextToken
        /// can be used to retrieve those other orders using that nextToken.
        ///
        /// </remarks>
        public ListOrdersByNextTokenResponse ListOrdersByNextToken(ListOrdersByNextTokenRequest request)
        {
            return(Invoke <ListOrdersByNextTokenResponse>(ConvertListOrdersByNextToken(request)));
        }
コード例 #21
0
 public Task <ListOrdersByNextTokenResponse> ListOrdersByNextToken(ListOrdersByNextTokenRequest request)
 {
     return(Task.Run(() => this.connection.Call(
                         new ImwssOrdersServiceClient.Request <ListOrdersByNextTokenResponse>("ListOrdersByNextToken", typeof(ListOrdersByNextTokenResponse), this.servicePath),
                         request)));
 }
コード例 #22
0
ファイル: OrdersPipeline.cs プロジェクト: eseroz/AmazonAPI
        private Order[] ListOrders(DateTime CreatedAfter, DateTime CreatedBefore, DateTime LastUpdatedAfter, DateTime LastUpdatedBefore, EOrderStatus[] OrderStatus)
        {
            string           NextToken               = string.Empty;
            AmazonCredential Credentials             = this.GetCredential();
            MarketplaceWebServiceOrdersClient Client = this.GetClient(Credentials);
            ListOrdersRequest Request = new ListOrdersRequest()
            {
                SellerId      = Credentials.SellerID,
                MarketplaceId = new List <string>()
                {
                    Credentials.MarketplaceID
                },
            };

            if (CreatedAfter != default(DateTime) && CreatedBefore != default(DateTime))
            {
                Request.CreatedAfter  = CreatedAfter;
                Request.CreatedBefore = CreatedBefore;
            }
            if (LastUpdatedAfter != default(DateTime) && LastUpdatedBefore != default(DateTime))
            {
                Request.LastUpdatedAfter  = LastUpdatedAfter;
                Request.LastUpdatedBefore = LastUpdatedBefore;
            }
            if (OrderStatus != null)
            {
                Request.OrderStatus = OrderStatus.Select(Item => Item.ToString()).ToList();
            }

            List <Order> Orders         = new List <Order>();
            Task         ListOrdersTask = new Task(() =>
            {
                while (true)
                {
                    switch (string.IsNullOrWhiteSpace(NextToken))
                    {
                    case true:
                        this.Throttle(ERequestType.ListOrders);
                        ListOrdersResponse Response = Client.ListOrders(Request);
                        if (Response.IsSetListOrdersResult())
                        {
                            ListOrdersResult Result = Response.ListOrdersResult;
                            if (Result.IsSetOrders())
                            {
                                foreach (var Order in Result.Orders)
                                {
                                    Orders.Add(Order);
                                }
                            }

                            if (Result.IsSetNextToken())
                            {
                                NextToken = Result.NextToken;
                            }
                            else
                            {
                                goto EndOfLoop;
                            }
                        }
                        break;

                    case false:
                        this.Throttle(ERequestType.ListOrders);
                        ListOrdersByNextTokenRequest RequestNextToken = new ListOrdersByNextTokenRequest()
                        {
                            SellerId  = Credentials.SellerID,
                            NextToken = NextToken
                        };
                        ListOrdersByNextTokenResponse ResponseNextToken = Client.ListOrdersByNextToken(RequestNextToken);
                        if (ResponseNextToken.IsSetListOrdersByNextTokenResult())
                        {
                            ListOrdersByNextTokenResult ResultNextToken = ResponseNextToken.ListOrdersByNextTokenResult;
                            if (ResultNextToken.IsSetOrders())
                            {
                                foreach (var Order in ResultNextToken.Orders)
                                {
                                    Orders.Add(Order);
                                }
                            }

                            if (ResultNextToken.IsSetNextToken())
                            {
                                NextToken = ResultNextToken.NextToken;
                            }
                            else
                            {
                                goto EndOfLoop;
                            }
                        }
                        break;
                    }
                }
                EndOfLoop:
                Console.Write("");
            });

            ListOrdersTask.Start();
            ListOrdersTask.Wait((int)Math.Ceiling(TimeSpan.FromMinutes(Definitions.Timeout_Minutes).Add(TimeSpan.FromHours(Definitions.Timeout_Hours)).TotalMilliseconds));
            return(Orders.ToArray());
        }
コード例 #23
0
        public void Insert_NextToken(string token = null)
        {
            Amazon_Juchuu_NextToken = D_AmazonJuchuu();
            Base_BL   bbl     = new Base_BL();
            DataTable strbuff = new DataTable();

            strbuff.Columns.Add("StoreCD");
            strbuff.Columns.Add("APIKey");
            strbuff.Columns.Add("SEQ");
            strbuff.Columns.Add("OrderId");
            MarketplaceWebServiceOrdersConfig config = new MarketplaceWebServiceOrdersConfig();

            config.ServiceURL = CommonValue.strServiceURL;
            MarketplaceWebServiceOrders.MarketplaceWebServiceOrders client = new MarketplaceWebServiceOrdersClient(
                AccessKeyId,
                SecretKeyId,
                ApplicationName,
                ApplicationVersion,
                config);

            if (token != null)
            {
                ListOrdersByNextTokenRequest request1 = new ListOrdersByNextTokenRequest();
                ListOrdersByNextTokenResult  listOrdersByNextResult = new ListOrdersByNextTokenResult();
                request1.SellerId     = SellerId;
                request1.MWSAuthToken = MWSAuthToken;
                request1.NextToken    = token;
                ListOrdersByNextTokenResponse response1 = client.ListOrdersByNextToken(request1);
                if (response1.IsSetListOrdersByNextTokenResult())
                {
                    listOrdersByNextResult = response1.ListOrdersByNextTokenResult;
                    if (listOrdersByNextResult.IsSetOrders())
                    {
                        List <Order> orders = listOrdersByNextResult.Orders;
                        int          i      = 0;
                        foreach (Order o in orders)
                        {
                            i++;
                            strbuff.Rows.Add(StoreCD, APIKey, i, o.AmazonOrderId);
                            GetListOrderdata(o, i, false);
                        }
                    }
                }
                Amazon__Entity ameDetails = new Amazon__Entity();
                ameDetails.StoreCD           = StoreCD;
                ameDetails.APIKey            = APIKey;
                ameDetails.LastUpdatedAfter  = UpdatedTimeBefore.ToString();
                ameDetails.LastUpdatedBefore = listOrdersByNextResult.LastUpdatedBefore.ToString();
                ameDetails.Xmldetails        = bbl.DataTableToXml(Amazon_Juchuu_NextToken);
                ameDetails.XmlOrder          = bbl.DataTableToXml(strbuff);

                TokenNo = TokenNo + 1;
                if (aml.AmazonAPI_Insert_NextToken(ameDetails))
                {
                    Console.WriteLine("Successfully Inserted Token " + (TokenNo).ToString() + "Times");
                }
                else
                {
                    Console.WriteLine("Unfortunately Inserted Failed Token " + (TokenNo).ToString() + "Times");
                }
                Insert_NextToken(listOrdersByNextResult.NextToken);
            }
            else/// To be Continued. . . Insert
            {
                Console.Write("Order inserted Successfully!!!");
                Console.Read();
            }
        }
コード例 #24
0
 public Task <ListOrdersByNextTokenResponse> ListOrdersByNextToken(ListOrdersByNextTokenRequest request)
 {
     return(newResponse <ListOrdersByNextTokenResponse>());
 }
コード例 #25
0
        // Public API ------------------------------------------------------------//


        /// <summary>
        /// List Orders By Next Token
        /// </summary>
        /// <param name="request">List Orders By Next Token  request</param>
        /// <returns>List Orders By Next Token  Response from the service</returns>
        /// <remarks>
        /// If ListOrders returns a nextToken, thus indicating that there are more orders
        /// than returned that matched the given filter criteria, ListOrdersByNextToken
        /// can be used to retrieve those other orders using that nextToken.
        ///
        /// </remarks>
        public ListOrdersByNextTokenResponse ListOrdersByNextToken(ListOrdersByNextTokenRequest request)
        {
            return(Invoke <ListOrdersByNextTokenResponse>("ListOrdersByNextTokenResponse.xml"));
        }