/// <summary> /// Fetches the OrderItems for the specified orderId. /// </summary> public void FetchOrderItems(string orderId, ProcessOrderItemHandler handler) { if (handler == null) { throw new ArgumentNullException("handler"); } ListOrderItemsRequest request = new ListOrderItemsRequest(); request.SellerId = mwsSellerId; request.AmazonOrderId = orderId; ListOrderItemsResponse response = null; OrderFetcher.InvokeRetriable(LIST_ORDER_ITEMS_DEFAULT_THROTTLE_LIMIT, delegate() { response = mwsService.ListOrderItems(request); foreach (OrderItem orderItem in response.ListOrderItemsResult.OrderItems.OrderItem) { handler(orderItem); } }); String nextTokenString = response.ListOrderItemsResult.NextToken; while (!string.IsNullOrEmpty(nextTokenString)) { // If NextToken is set, continue looping through the orders. ListOrderItemsByNextTokenRequest nextRequest = new ListOrderItemsByNextTokenRequest(); nextRequest.NextToken = nextTokenString; nextRequest.SellerId = mwsSellerId; ListOrderItemsByNextTokenResponse nextResponse = null; OrderFetcher.InvokeRetriable(LIST_ORDER_ITEMS_DEFAULT_THROTTLE_LIMIT, delegate() { nextResponse = mwsService.ListOrderItemsByNextToken(nextRequest); foreach (OrderItem orderItem in nextResponse.ListOrderItemsByNextTokenResult.OrderItems.OrderItem) { handler(orderItem); } }); nextTokenString = nextResponse.ListOrderItemsByNextTokenResult.NextToken; } }
/// <summary> /// Fetches the OrderItems for the specified orderId. /// </summary> public void FetchOrderItems(string orderId, ProcessOrderItemHandler handler) { if (handler == null) throw new ArgumentNullException("handler"); ListOrderItemsRequest request = new ListOrderItemsRequest(); request.SellerId = mwsSellerId; request.AmazonOrderId = orderId; ListOrderItemsResponse response = null; OrderFetcher.InvokeRetriable(LIST_ORDER_ITEMS_DEFAULT_THROTTLE_LIMIT, delegate() { response = mwsService.ListOrderItems(request); foreach (OrderItem orderItem in response.ListOrderItemsResult.OrderItems.OrderItem) { handler(orderItem); } }); while (!string.IsNullOrEmpty(response.ListOrderItemsResult.NextToken)) { // If NextToken is set, continue looping through the orders. ListOrderItemsByNextTokenRequest nextRequest = new ListOrderItemsByNextTokenRequest(); nextRequest.NextToken = response.ListOrderItemsResult.NextToken; nextRequest.SellerId = mwsSellerId; ListOrderItemsByNextTokenResponse nextResponse = null; OrderFetcher.InvokeRetriable(LIST_ORDER_ITEMS_DEFAULT_THROTTLE_LIMIT, delegate() { nextResponse = mwsService.ListOrderItemsByNextToken(nextRequest); foreach (OrderItem orderItem in nextResponse.ListOrderItemsByNextTokenResult.OrderItems.OrderItem) { handler(orderItem); } }); } }