/// <summary> /// Get Report List By Next Token /// </summary> /// <param name="request">Get Report List By Next Token request</param> /// <returns>Get Report List By Next Token Response from the service</returns> /// <remarks> /// retrieve the next batch of list items and if there are more items to retrieve /// /// </remarks> public GetReportListByNextTokenResponse GetReportListByNextToken(GetReportListByNextTokenRequest request) { return(Invoke <GetReportListByNextTokenResponse>("GetReportListByNextTokenResponse.xml")); }
/// <summary> /// Get Report List By Next Token /// </summary> /// <param name="request">Get Report List By Next Token request</param> /// <returns>Get Report List By Next Token Response from the service</returns> /// <remarks> /// retrieve the next batch of list items and if there are more items to retrieve /// /// </remarks> public async Task <GetReportListByNextTokenResponse> GetReportListByNextToken(GetReportListByNextTokenRequest request) { return(await Invoke <GetReportListByNextTokenResponse>("GetReportListByNextTokenResponse.xml")); }
/// <summary> /// retrieve the next batch of list items and if there are more items to retrieve /// /// </summary> /// <param name="service">Instance of MarketplaceWebService service</param> /// <param name="request">GetReportListByNextTokenRequest request</param> public static void InvokeGetReportListByNextToken(MarketplaceWebService service, GetReportListByNextTokenRequest request) { try { GetReportListByNextTokenResponse response = service.GetReportListByNextToken(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetReportListByNextTokenResponse"); if (response.IsSetGetReportListByNextTokenResult()) { Console.WriteLine(" GetReportListByNextTokenResult"); GetReportListByNextTokenResult getReportListByNextTokenResult = response.GetReportListByNextTokenResult; if (getReportListByNextTokenResult.IsSetNextToken()) { Console.WriteLine(" NextToken"); Console.WriteLine(" {0}", getReportListByNextTokenResult.NextToken); } if (getReportListByNextTokenResult.IsSetHasNext()) { Console.WriteLine(" HasNext"); Console.WriteLine(" {0}", getReportListByNextTokenResult.HasNext); } List <ReportInfo> reportInfoList = getReportListByNextTokenResult.ReportInfo; foreach (ReportInfo reportInfo in reportInfoList) { Console.WriteLine(" ReportInfo"); if (reportInfo.IsSetReportId()) { Console.WriteLine(" ReportId"); Console.WriteLine(" {0}", reportInfo.ReportId); } if (reportInfo.IsSetReportType()) { Console.WriteLine(" ReportType"); Console.WriteLine(" {0}", reportInfo.ReportType); } if (reportInfo.IsSetReportRequestId()) { Console.WriteLine(" ReportRequestId"); Console.WriteLine(" {0}", reportInfo.ReportRequestId); } if (reportInfo.IsSetAvailableDate()) { Console.WriteLine(" AvailableDate"); Console.WriteLine(" {0}", reportInfo.AvailableDate); } if (reportInfo.IsSetAcknowledged()) { Console.WriteLine(" Acknowledged"); Console.WriteLine(" {0}", reportInfo.Acknowledged); } if (reportInfo.IsSetAcknowledgedDate()) { Console.WriteLine(" AcknowledgedDate"); Console.WriteLine(" {0}", reportInfo.AcknowledgedDate); } } } if (response.IsSetResponseMetadata()) { Console.WriteLine(" ResponseMetadata"); ResponseMetadata responseMetadata = response.ResponseMetadata; if (responseMetadata.IsSetRequestId()) { Console.WriteLine(" RequestId"); Console.WriteLine(" {0}", responseMetadata.RequestId); } } } catch (MarketplaceWebServiceException 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); } }
/// <summary> /// retrieve the next batch of list items and if there are more items to retrieve. /// /// </summary> /// <param name="service">Instance of MarketplaceWebService service.</param> /// <param name="request">GetReportListByNextTokenRequest request.</param> public static async Task InvokeGetReportListByNextToken(IMarketplaceWebService service, GetReportListByNextTokenRequest request) { try { var response = await service.GetReportListByNextToken(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetReportListByNextTokenResponse"); if (response.IsSetGetReportListByNextTokenResult()) { Console.WriteLine(" GetReportListByNextTokenResult"); var getReportListByNextTokenResult = response.GetReportListByNextTokenResult; if (getReportListByNextTokenResult.IsSetNextToken()) { Console.WriteLine(" NextToken"); Console.WriteLine(" {0}", getReportListByNextTokenResult.NextToken); } if (getReportListByNextTokenResult.IsSetHasNext()) { Console.WriteLine(" HasNext"); Console.WriteLine(" {0}", getReportListByNextTokenResult.HasNext); } var reportInfoList = getReportListByNextTokenResult.ReportInfo; foreach (var reportInfo in reportInfoList) { Console.WriteLine(" ReportInfo"); if (reportInfo.IsSetReportId()) { Console.WriteLine(" ReportId"); Console.WriteLine(" {0}", reportInfo.ReportId); } if (reportInfo.IsSetReportType()) { Console.WriteLine(" ReportType"); Console.WriteLine(" {0}", reportInfo.ReportType); } if (reportInfo.IsSetReportRequestId()) { Console.WriteLine(" ReportRequestId"); Console.WriteLine(" {0}", reportInfo.ReportRequestId); } if (reportInfo.IsSetAvailableDate()) { Console.WriteLine(" AvailableDate"); Console.WriteLine(" {0}", reportInfo.AvailableDate); } if (reportInfo.IsSetAcknowledged()) { Console.WriteLine(" Acknowledged"); Console.WriteLine(" {0}", reportInfo.Acknowledged); } if (reportInfo.IsSetAcknowledgedDate()) { Console.WriteLine(" AcknowledgedDate"); Console.WriteLine(" {0}", reportInfo.AcknowledgedDate); } } } if (response.IsSetResponseMetadata()) { Console.WriteLine(" ResponseMetadata"); var 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); } catch (MarketplaceWebServiceException 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); } }
public string GetReportLatestReport(DateTime From, DateTime To, string ReportType) { List <string> ReportList = new List <string>(); GetReportListRequest requestReport = new GetReportListRequest(); requestReport.Acknowledged = false; requestReport.AvailableFromDate = From; requestReport.AvailableToDate = To; #pragma warning disable CS0618 // Type or member is obsolete requestReport.Marketplace = api.MarketplaceId; #pragma warning restore CS0618 // Type or member is obsolete requestReport.MaxCount = 99; requestReport.Merchant = api.Merchant; List <string> reportCode = new List <string>(); reportCode.Add(ReportType); TypeList typeList = new TypeList(); typeList.Type = reportCode; requestReport.ReportTypeList = typeList; MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig(); config.ServiceURL = webService.SERVICE_URL; config.WithUserAgent(webService.USER_AGENT); MarketplaceWebServiceClient client = new MarketplaceWebServiceClient(api.AccessKey, api.SecretKey, config); GetReportListResult getReportListResult = null; getReportListResult = InvokeGetReportList(client, requestReport); if (getReportListResult != null) { if (getReportListResult.HasNext) { while (getReportListResult.HasNext) { int i = 0; if (i % 2 == 0) { Thread.Sleep(2000); } GetReportListByNextTokenRequest getReportListByNextTokenRequest = new GetReportListByNextTokenRequest(); #pragma warning disable CS0618 // Type or member is obsolete getReportListByNextTokenRequest.Marketplace = api.MarketplaceId; #pragma warning restore CS0618 // Type or member is obsolete getReportListByNextTokenRequest.Merchant = api.Merchant; getReportListByNextTokenRequest.NextToken = getReportListResult.NextToken; string ReportId = InvokeGetReportListByNextToken(client, getReportListByNextTokenRequest); ReportList.Add(ReportId); i++; } } List <ReportInfo> reportInfoList = getReportListResult.ReportInfo; if (reportInfoList.Count > 0) { foreach (ReportInfo reportInfo in reportInfoList) { ReportList.Add(reportInfo.ReportId); } } else { Console.WriteLine("No reports returned from Amazon."); throw new Exception("No reports returned from Amazon."); } } return(ReportList[0]); }
public string InvokeGetReportListByNextToken(Operations.Reports.MarketplaceWebService client, GetReportListByNextTokenRequest request) { string ReportId = ""; try { GetReportListByNextTokenResponse response = client.GetReportListByNextToken(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetReportListByNextTokenResponse"); if (response.IsSetGetReportListByNextTokenResult()) { Console.WriteLine(" GetReportListByNextTokenResult"); GetReportListByNextTokenResult getReportListByNextTokenResult = response.GetReportListByNextTokenResult; if (getReportListByNextTokenResult.IsSetNextToken()) { Console.WriteLine(" NextToken"); Console.WriteLine(" {0}", getReportListByNextTokenResult.NextToken); } if (getReportListByNextTokenResult.IsSetHasNext()) { Console.WriteLine(" HasNext"); Console.WriteLine(" {0}", getReportListByNextTokenResult.HasNext); } List <ReportInfo> reportInfoList = getReportListByNextTokenResult.ReportInfo; foreach (ReportInfo reportInfo in reportInfoList) { Console.WriteLine(" ReportInfo"); if (reportInfo.IsSetReportId()) { Console.WriteLine(" ReportId"); Console.WriteLine(" {0}", reportInfo.ReportId); ReportId = reportInfo.ReportId; } if (reportInfo.IsSetReportType()) { Console.WriteLine(" ReportType"); Console.WriteLine(" {0}", reportInfo.ReportType); } if (reportInfo.IsSetReportRequestId()) { Console.WriteLine(" ReportRequestId"); Console.WriteLine(" {0}", reportInfo.ReportRequestId); } if (reportInfo.IsSetAvailableDate()) { Console.WriteLine(" AvailableDate"); Console.WriteLine(" {0}", reportInfo.AvailableDate); } if (reportInfo.IsSetAcknowledged()) { Console.WriteLine(" Acknowledged"); Console.WriteLine(" {0}", reportInfo.Acknowledged); } if (reportInfo.IsSetAcknowledgedDate()) { Console.WriteLine(" AcknowledgedDate"); Console.WriteLine(" {0}", reportInfo.AcknowledgedDate); } } } 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); } catch (MarketplaceWebServiceException 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); } return(ReportId); }
public IEnumerable <object> GetReportList(DateTime startDate, DateTime endDate) { var request = new GetReportListRequest { Merchant = "A12HYFEDED6DEW", AvailableFromDate = startDate, AvailableToDate = endDate, ReportTypeList = new TypeList { Type = new List <string> { "_GET_V2_SETTLEMENT_REPORT_DATA_XML_" } } }; var response = _amazonClient.GetReportList(request); var reportInfoList = response.GetReportListResult.ReportInfo; var nextToken = response.GetReportListResult.NextToken; var hasNext = response.GetReportListResult.HasNext; GetReportListByNextTokenResponse nextResponse = null; var reportCounter = 0; // pause for 2 seconds to give the Amazon MWS a little bit time to process the others Thread.Sleep(2000); // let's find the report we are interested in var reports = findReportTypes(reportInfoList); while (hasNext) { var nextRequest = new GetReportListByNextTokenRequest { Merchant = "A12HYFEDED6DEW", NextToken = nextToken }; nextResponse = _amazonClient.GetReportListByNextToken(nextRequest); reportInfoList = nextResponse.GetReportListByNextTokenResult.ReportInfo; nextToken = nextResponse.GetReportListByNextTokenResult.NextToken; hasNext = nextResponse.GetReportListByNextTokenResult.HasNext; // pause for 2 seconds, this is the restore rate for GetReportListByNextToken Thread.Sleep(2000); // find and add it to the list reports.AddRange(findReportTypes(reportInfoList)); foreach (var reportInfo in reports) { // check if the report request quota reach to 15 if (reportCounter % 15 == 0) { // if so, pause for 1 minute, this is the restore rate for GetReport Thread.Sleep(60000); } var stream = downloadReportStream(reportInfo.ReportId); // save the stream into a file saveStreamToFile(stream, string.Format("{0}_{1}", reportInfo.ReportType, reportInfo.ReportId)); reportCounter++; } // clear the reports lisst reports.Clear(); } return(null); }
public List <string> SubmitSettlementReportRequest(DateTime createdAfter, bool includeAcknowledged) { var request = new GetReportListRequest { Merchant = _merchantId, AvailableFromDate = createdAfter, AvailableToDate = DateTime.Now, ReportTypeList = new TypeList { Type = new List <string> { _SETTLEMENT_REPORT_TYPE } } }; var response = _amazonClient.GetReportList(request); var reportInfoList = response.GetReportListResult.ReportInfo; var nextToken = response.GetReportListResult.NextToken; var hasNext = response.GetReportListResult.HasNext; var reportCounter = 1; bool hasNextReport; var reportFilePaths = new List <string>(); var reportIds = new List <string>(); // pause for 2 seconds to give the Amazon MWS a little bit time to process the others Thread.Sleep(2000); do { hasNextReport = false; // download and parse the report info foreach (var reportInfo in reportInfoList) { if (!includeAcknowledged && reportInfo.Acknowledged) { continue; } // check if the report request quota reach to 15 if (reportCounter % 15 == 0) { // if so, pause for 1 minute, this is the restore rate for GetReport Thread.Sleep(60000); } var stream = downloadReportStream(reportInfo.ReportId); // save the stream into a file var filePath = saveStreamToFile(stream, string.Format("{0}{1}", reportInfo.ReportId, reportInfo.ReportType)); // add the filepath and report id to the lists reportFilePaths.Add(filePath); reportIds.Add(reportInfo.ReportId); reportCounter++; } // send another request for the next report list if (hasNext) { var nextRequest = new GetReportListByNextTokenRequest { Merchant = _merchantId, NextToken = nextToken }; var nextResponse = _amazonClient.GetReportListByNextToken(nextRequest); reportInfoList = nextResponse.GetReportListByNextTokenResult.ReportInfo; nextToken = nextResponse.GetReportListByNextTokenResult.NextToken; hasNext = nextResponse.GetReportListByNextTokenResult.HasNext; hasNextReport = reportInfoList.Any(); } } while (hasNextReport); // then let's send the acknowledgment to the Reports Ids submitReportsAcknowledgement(reportIds); return(reportFilePaths); }