コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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");
            }
        }