private FeedSubmissionInfo[] _GetFeedSubmissionList(string[] FeedSubmissionIdList, EFeedType[] FeedTypeList, EFeedProcessingStatus[] FeedProcessingStatusList, DateTime SubmittedFromDate, DateTime SubmittedToDate) { string NextToken = string.Empty; AmazonCredential Credentials = this.GetCredential(); MarketplaceWebServiceClient Client = this.GetClient(Credentials); GetFeedSubmissionListRequest Request = new GetFeedSubmissionListRequest() { Merchant = Credentials.MerchantID, MaxCount = 100 }; if (FeedSubmissionIdList != null) { Request.FeedSubmissionIdList = new IdList() { Id = FeedSubmissionIdList.ToList() } } ; else if (FeedTypeList != null) { Request.FeedTypeList = new TypeList() { Type = FeedTypeList.Select(Item => EnumStringHandler.GetEnumString <EFeedType>(Item)).ToList() } } ; else if (FeedProcessingStatusList != null) { Request.FeedProcessingStatusList = new StatusList() { Status = FeedProcessingStatusList.Select(Item => EnumStringHandler.GetEnumString <EFeedProcessingStatus>(Item)).ToList() } } ; else if (SubmittedFromDate != default(DateTime) && SubmittedToDate != default(DateTime)) { Request.SubmittedFromDate = SubmittedFromDate; Request.SubmittedToDate = SubmittedToDate; } List <FeedSubmissionInfo> Info = new List <FeedSubmissionInfo>(); Task GetFeedSubmissionListTask = new Task(() => { while (true) { switch (NextToken == string.Empty) { case true: this.Throttle(ERequestType.GetFeedSubmissionList); GetFeedSubmissionListResponse Response = Client.GetFeedSubmissionList(Request); if (Response.IsSetGetFeedSubmissionListResult()) { GetFeedSubmissionListResult Result = Response.GetFeedSubmissionListResult; if (Result.IsSetFeedSubmissionInfo()) { foreach (var FeedInfo in Result.FeedSubmissionInfo) { Info.Add(FeedInfo); } } if (Result.HasNext) { NextToken = Result.NextToken; } else { goto EndOfLoop; } } break; case false: this.Throttle(ERequestType.GetFeedSubmissionListByNextToken); GetFeedSubmissionListByNextTokenRequest RequestNextToken = new GetFeedSubmissionListByNextTokenRequest() { Merchant = Credentials.MerchantID, NextToken = NextToken, }; GetFeedSubmissionListByNextTokenResponse ResponseNextToken = Client.GetFeedSubmissionListByNextToken(RequestNextToken); if (ResponseNextToken.IsSetGetFeedSubmissionListByNextTokenResult()) { GetFeedSubmissionListByNextTokenResult ResultNextToken = ResponseNextToken.GetFeedSubmissionListByNextTokenResult; if (ResultNextToken.IsSetFeedSubmissionInfo()) { foreach (var FeedInfo in ResultNextToken.FeedSubmissionInfo) { Info.Add(FeedInfo); } } if (ResultNextToken.HasNext) { NextToken = ResultNextToken.NextToken; } else { goto EndOfLoop; } } break; } } EndOfLoop: Console.Write(""); }); GetFeedSubmissionListTask.Start(); GetFeedSubmissionListTask.Wait((int)Math.Ceiling(TimeSpan.FromMinutes(Definitions.Timeout_Minutes).Add(TimeSpan.FromHours(Definitions.Timeout_Hours)).TotalMilliseconds)); return(Info.ToArray()); }