/// <summary> /// The GetReport operation returns the contents of a report. Reports can potentially be /// very large (>100MB) which is why we only return one report at a time, and in a /// streaming fashion. /// /// </summary> /// <param name="service">Instance of MarketplaceWebService service.</param> /// <param name="request">GetReportRequest request.</param> public static async Task InvokeGetReport(IMarketplaceWebService service, GetReportRequest request) { try { var response = await service.GetReport(request); Console.WriteLine("Service Response"); Console.WriteLine("============================================================================="); Console.WriteLine(); Console.WriteLine(" GetReportResponse"); if (response.IsSetGetReportResult()) { Console.WriteLine(" GetReportResult"); var getReportResult = response.GetReportResult; if (getReportResult.IsSetContentMD5()) { Console.WriteLine(" ContentMD5"); Console.WriteLine(" {0}", getReportResult.ContentMD5); } } 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); } }
private void GetReportData(RequestInfo requestInfo, Stream stream) { var requestReport = new GetReportRequest(); var requestsListInfo = requestInfo.Owner; var merchant = requestsListInfo.UserId; var access = requestsListInfo.Access; var requestName = requestInfo.Name; var requestReportList = new GetReportListRequest { Merchant = merchant }; ReportInfo reportInfo = null; var respGetReportList = AmazonWaitBeforeRetryHelper.DoServiceAction( requestsListInfo.ErrorRetryingInfo, ReportGetReportListTrapForThrottling, requestName, access, requestsListInfo.RequestsCounter, () => _Service.GetReportList(requestReportList), "GetReportList"); if (respGetReportList != null && respGetReportList.IsSetGetReportListResult()) { reportInfo = respGetReportList.GetReportListResult.ReportInfo.FirstOrDefault(r => r.ReportRequestId.Equals(requestInfo.Id)); } if (reportInfo != null) { requestReport.Merchant = merchant; requestReport.ReportId = reportInfo.ReportId; requestReport.Report = stream; AmazonWaitBeforeRetryHelper.DoServiceAction( requestsListInfo.ErrorRetryingInfo, ReportGetReportTrapForThrottling, requestName, access, requestsListInfo.RequestsCounter, () => _Service.GetReport(requestReport), "GetReport"); } }