/// <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"));
 }
示例#2
0
 /// <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);
            }
        }
示例#4
0
        /// <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);
            }
        }
示例#5
0
        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]);
        }
示例#6
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);
        }
示例#7
0
        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);
        }
示例#8
0
        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);
        }