Exemplo n.º 1
0
        static async Task ListMarketplaceParticipations()
        {
            var channel = AmazonMWSChannelFactory.Create(ClientOptions);
            var subject = channel.CreateSellersClient();

            var result = await subject.ListMarketplaceParticipations();
        }
Exemplo n.º 2
0
        static async Task GetBrowseTreeReport()
        {
            void PrintTreeRecursively(BrowseTree tree, BrowseTreeNode node, int currentDepth)
            {
                var prefix = new string(Enumerable.Repeat('\t', currentDepth).ToArray());

                Console.WriteLine($"{prefix}{node.Name}");

                if (node.HasChildren)
                {
                    var childNodes = tree.Nodes.Where(x => node.ChildNodes.Ids.Contains(x.Id));
                    foreach (var childNode in childNodes)
                    {
                        PrintTreeRecursively(tree, childNode, currentDepth + 1);
                    }
                }
            }

            var channel = AmazonMWSChannelFactory.Create(ClientOptions);
            var subject = channel.CreateReportsClient();

            Console.WriteLine("Requesting report");
            var reportRequestResponse = await subject.RequestReport(RequestReportRequest.BrowseTree(rootNodesOnly: RootNodesOnly, browseNodeId: browseNodeId));

            reportRequestResponse.EnsureSuccess();
            Console.WriteLine("Requested report");

            var reportRequestInfo = reportRequestResponse.Result.ReportRequestInfo;

            while (!reportRequestInfo.IsComplete)
            {
                //   await Task.Delay(1000);
                Console.WriteLine("Checking if the report is available...");
                var reportRequestListResponse = await subject.GetReportRequestList(new GetReportRequestListRequest { ReportRequestIds = new[] { reportRequestInfo.ReportRequestId } });

                if (reportRequestListResponse.Error?.Code == ErrorCode.RequestThrottled)
                {
                    Console.WriteLine("Request throttled received, taking a break for 45 secs...");
                    await Task.Delay(TimeSpan.FromSeconds(45));
                }
                else
                {
                    reportRequestListResponse.EnsureSuccess();
                    reportRequestInfo = reportRequestListResponse.Result.ReportRequestInformations.Single();
                }
            }

            Console.WriteLine($"Report available with id {reportRequestInfo.GeneratedReportId}, fetching content (this may take a few minutes)...");
            var reportResponse = await subject.GetReport(reportRequestInfo.GeneratedReportId);

            reportResponse.EnsureSuccess();
            var browseTree = await reportResponse.ReadXmlAsAsync <BrowseTree>();

            Console.WriteLine("Report fetched");
            Console.WriteLine();
            Console.WriteLine();


            foreach (var rootNode in browseTree.Nodes.Where(x => string.IsNullOrEmpty(x.BrowsePathById)))
            {
                PrintTreeRecursively(browseTree, rootNode, 0);
            }
        }