protected override void RunScenario()

in sdk/SdkSamples/Invoice/GetUsageLineItemsForOpenPeriodPaging.cs [39:106]


        protected override void RunScenario()
        {
            var partnerOperations = this.Context.UserPartnerOperations;
            string curencyCode = this.Context.Configuration.Scenario.DefaultCurrencyCode;
            if (string.IsNullOrWhiteSpace(curencyCode))
            {
                // prompt the user the enter the currency code
                curencyCode = this.Context.ConsoleHelper.ReadNonEmptyString("Please enter 3 digit currency code to retrieve the unbilled consumption reconciliation line items ", "The currency code can't be empty");
            }
            else
            {
                Console.WriteLine("Found Currency code: {0} in configuration.", curencyCode);
            }

            var pageMaxSizeReconciliationLineItems = 2000;
            var period = "current";

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

            this.Context.ConsoleHelper.StartProgress("Getting unbilled consumption reconciliation line items");
            // Retrieving unbilled consumption line items

            var seekBasedResourceCollection = scopedPartnerOperations.Invoices.ById("unbilled").By("marketplace", "usagelineitems", curencyCode, period, pageMaxSizeReconciliationLineItems).Get();

            var fetchNext = true;

            ConsoleKeyInfo keyInfo;

            var itemNumber = 1;

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

            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("unbilled").By("marketplace", "usagelineitems", curencyCode, period, pageMaxSizeReconciliationLineItems).Seek(seekBasedResourceCollection.ContinuationToken, SeekOperation.Next);
                        }
                    }
                }
            }

            this.Context.ConsoleHelper.StopProgress();
        }