Skip to content

Commit b8481d6

Browse files
committed
fix #254
1 parent 5c79181 commit b8481d6

File tree

3 files changed

+40
-9
lines changed

3 files changed

+40
-9
lines changed

Source/FikaAmazonAPI.SampleCode/OrdersSample.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,27 @@ public OrdersSample(AmazonConnection amazonConnection)
1515
this.amazonConnection = amazonConnection;
1616
}
1717

18+
19+
public void GetOrdersOnePageWithNextPageToken()
20+
{
21+
// ONLY USE THIS SAMPLE IF YOU NEED TO GET ONE PAGE EACH TIME other wise remove parameter 'MaxNumberOfPages' and libaray will fetch all orders to you
22+
ParameterOrderList serachOrderList = new ParameterOrderList();
23+
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
24+
serachOrderList.MaxNumberOfPages = 1;
25+
serachOrderList.OrderStatuses = new List<OrderStatuses>();
26+
serachOrderList.OrderStatuses.Add(OrderStatuses.Shipped);
27+
28+
serachOrderList.AmazonOrderIds = new List<string>();
29+
30+
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
31+
var nextPageToken = orders.NextToken;
32+
while (!string.IsNullOrEmpty(nextPageToken))
33+
{
34+
var moreOrders = amazonConnection.Orders.GetGetOrdersByNextToken(nextPageToken, serachOrderList);
35+
nextPageToken = moreOrders.NextToken;
36+
}
37+
38+
}
1839
public void GetOrders()
1940
{
2041
ParameterOrderList serachOrderList = new ParameterOrderList();

Source/FikaAmazonAPI/AmazonSpApiSDK/Models/Orders/OrderList.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public OrderList() : base()
3131
{
3232
}
3333

34+
public string NextToken { get; set; }
35+
3436
/// <summary>
3537
/// Returns the string presentation of the object
3638
/// </summary>

Source/FikaAmazonAPI/Services/OrderService.cs

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,27 @@ public async Task<OrderList> GetOrdersAsync(ParameterOrderList searchOrderList)
3333
var nextToken = response.Payload.NextToken;
3434
orderList = response.Payload.Orders;
3535
int PageCount = 1;
36-
while (!string.IsNullOrEmpty(nextToken))
36+
if (searchOrderList.MaxNumberOfPages.HasValue && searchOrderList.MaxNumberOfPages.Value == 1)
3737
{
38-
var orderPayload = GetGetOrdersByNextToken(nextToken, searchOrderList);
39-
orderList.AddRange(orderPayload.Orders);
40-
nextToken = orderPayload.NextToken;
41-
42-
if (searchOrderList.MaxNumberOfPages.HasValue)
38+
orderList.NextToken = nextToken;
39+
}
40+
else
41+
{
42+
while (!string.IsNullOrEmpty(nextToken))
4343
{
44-
PageCount++;
45-
if (PageCount >= searchOrderList.MaxNumberOfPages.Value)
46-
break;
44+
var orderPayload = GetGetOrdersByNextToken(nextToken, searchOrderList);
45+
orderList.AddRange(orderPayload.Orders);
46+
nextToken = orderPayload.NextToken;
47+
48+
if (searchOrderList.MaxNumberOfPages.HasValue)
49+
{
50+
PageCount++;
51+
if (PageCount >= searchOrderList.MaxNumberOfPages.Value)
52+
break;
53+
}
4754
}
4855
}
56+
4957
return orderList;
5058
}
5159

0 commit comments

Comments
 (0)