protected override void RunScenario()

in sdk/SdkSamples/Invoice/GetUsageLineItemsForClosePeriodPaging.cs [39:104]


        protected override void RunScenario()
        {
            var partnerOperations = this.Context.UserPartnerOperations;

            string invoiceId = this.Context.Configuration.Scenario.DefaultInvoiceId;
            if (string.IsNullOrWhiteSpace(invoiceId))
            {
                // prompt the user the enter the invoice ID
                invoiceId = this.Context.ConsoleHelper.ReadNonEmptyString("Please enter the invoice ID to retrieve ", "The invoice ID can't be empty");
            }
            else
            {
                Console.WriteLine("Found Invoice ID: {0} in configuration.", invoiceId);
            }

            var pageMaxSizeReconciliationLineItems = 2000;

            IPartner scopedPartnerOperations = partnerOperations.With(RequestContextFactory.Instance.Create(Guid.NewGuid()));

            this.Context.ConsoleHelper.StartProgress("Getting billed consumption reconciliation line items");
            // Retrieving billed consumption line items
            var seekBasedResourceCollection = scopedPartnerOperations.Invoices.ById(invoiceId).By("marketplace", "usagelineitems", null, null, pageMaxSizeReconciliationLineItems).Get();

            var fetchNext = true;

            ConsoleKeyInfo keyInfo;

            var itemNumber = 1;

            Console.Out.WriteLine("\tRecon line items count: " + seekBasedResourceCollection.Items.Count());

            if (seekBasedResourceCollection.Items.Count() > 0)
            {
                while (fetchNext)
                {
                    seekBasedResourceCollection.Items.Take(2).ToList().ForEach(i =>
                    {
                        Console.Out.WriteLine("\t----------------------------------------------");
                        Console.Out.WriteLine("\tLine Item # {0}", itemNumber);

                        PrintProperties(i);
                        itemNumber++;
                    });

                    Console.Out.WriteLine("\tPress any key to fetch next data. Press the Escape (Esc) key to quit: \n");
                    keyInfo = Console.ReadKey();

                    if (keyInfo.Key == ConsoleKey.Escape)
                    {
                        break;
                    }

                    fetchNext = !string.IsNullOrWhiteSpace(seekBasedResourceCollection.ContinuationToken);

                    if (fetchNext)
                    {
                        if (seekBasedResourceCollection.Links.Next.Headers != null && seekBasedResourceCollection.Links.Next.Headers.Any())
                        {
                            seekBasedResourceCollection = scopedPartnerOperations.Invoices.ById(invoiceId).By("marketplace", "usagelineitems", null, null, pageMaxSizeReconciliationLineItems).Seek(seekBasedResourceCollection.ContinuationToken, SeekOperation.Next);
                        }
                    }
                }
            }

            this.Context.ConsoleHelper.StopProgress();
        }