Skip to content

Commit 78e512c

Browse files
committed
fix #476
1 parent 98bddd3 commit 78e512c

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

Source/FikaAmazonAPI/AmazonSpApiSDK/Models/FulfillmentInbound/InboundShipmentItemList.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public InboundShipmentItemList() : base()
3131
{
3232
}
3333

34+
public string NextToken { get; set; }
3435
/// <summary>
3536
/// Returns the string presentation of the object
3637
/// </summary>

Source/FikaAmazonAPI/Services/FulFillmentInboundService.cs

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -245,35 +245,46 @@ public async Task<GetShipmentItemsResult> GetShipmentItemsByShipmentIdAsync(stri
245245
return response.Payload;
246246
return null;
247247
}
248-
public List<InboundShipmentItem> GetShipmentItems(ParameterGetShipmentItems parameterShipmentItems) =>
248+
public InboundShipmentItemList GetShipmentItems(ParameterGetShipmentItems parameterShipmentItems) =>
249249
Task.Run(() => GetShipmentItemsAsync(parameterShipmentItems)).ConfigureAwait(false).GetAwaiter().GetResult();
250-
public async Task<List<InboundShipmentItem>> GetShipmentItemsAsync(ParameterGetShipmentItems parameterShipmentItems, CancellationToken cancellationToken = default)
250+
public async Task<InboundShipmentItemList> GetShipmentItemsAsync(ParameterGetShipmentItems parameterShipmentItems, CancellationToken cancellationToken = default)
251251
{
252-
var shipmentItemList = new List<InboundShipmentItem>();
252+
var inboundShipmentItemList = new InboundShipmentItemList();
253253

254254
var parameter = parameterShipmentItems.getParameters();
255255
await CreateAuthorizedRequestAsync(FulFillmentInboundApiUrls.GetShipmentItems, RestSharp.Method.Get, parameter, cancellationToken: cancellationToken);
256256

257257
var response = await ExecuteRequestAsync<GetShipmentItemsResponse>(RateLimitType.FulFillmentInbound_GetShipmentItems, cancellationToken);
258258

259259
var nextToken = response.Payload?.NextToken;
260-
shipmentItemList = response.Payload?.ItemData;
260+
inboundShipmentItemList = response.Payload?.ItemData;
261261
int PageCount = 1;
262-
while (!string.IsNullOrEmpty(nextToken))
263-
{
264-
var orderPayload = await GetShipmentItemsByNextTokenAsync(nextToken, parameterShipmentItems, cancellationToken);
265-
shipmentItemList.AddRange(orderPayload.ItemData);
266-
nextToken = orderPayload.NextToken;
267262

268-
if (parameterShipmentItems.MaxNumberOfPages.HasValue)
263+
if (parameterShipmentItems.MaxNumberOfPages.HasValue && parameterShipmentItems.MaxNumberOfPages.Value == 1)
264+
{
265+
inboundShipmentItemList.NextToken = nextToken;
266+
}
267+
else
268+
{
269+
while (!string.IsNullOrEmpty(nextToken))
269270
{
270-
PageCount++;
271-
if (PageCount >= parameterShipmentItems.MaxNumberOfPages.Value)
272-
break;
271+
var orderPayload = await GetShipmentItemsByNextTokenAsync(nextToken, parameterShipmentItems, cancellationToken);
272+
inboundShipmentItemList.AddRange(orderPayload.ItemData);
273+
274+
nextToken = orderPayload.NextToken;
275+
inboundShipmentItemList.NextToken = nextToken;
276+
277+
if (parameterShipmentItems.MaxNumberOfPages.HasValue)
278+
{
279+
PageCount++;
280+
if (PageCount >= parameterShipmentItems.MaxNumberOfPages.Value)
281+
break;
282+
}
273283
}
274284
}
275285

276-
return shipmentItemList;
286+
287+
return inboundShipmentItemList;
277288
}
278289

279290
public async Task<GetShipmentItemsResult> GetShipmentItemsByNextTokenAsync(string nextToken, ParameterGetShipmentItems parameterShipmentItems, CancellationToken cancellationToken = default)

0 commit comments

Comments
 (0)