protected override void RunScenario()

in sdk/SdkSamples/Entitlements/GetEntitlements.cs [29:68]


        protected override void RunScenario()
        {
            string customerIdToRetrieve = this.ObtainCustomerId("Enter the ID of the customer to retrieve entitlements for");

            var partnerOperations = this.Context.UserPartnerOperations;
            this.Context.ConsoleHelper.StartProgress("Retrieving customer entitlements");

            var entitlements = partnerOperations.Customers.ById(customerIdToRetrieve).Entitlements.Get();
            this.Context.ConsoleHelper.StopProgress();

            foreach (var entitlement in entitlements.Items)
            {
                this.Context.ConsoleHelper.WriteObject(entitlement, "Entitlement details");

                try
                {
                    switch (entitlement.EntitlementType.ToLowerInvariant())
                    {
                        case "reservedinstance":
                            var reservedInstanceArtifactDetailsLink =
                                ((ReservedInstanceArtifact)entitlement.EntitledArtifacts.FirstOrDefault(x => string.Equals(x.ArtifactType, "ReservedInstance", StringComparison.OrdinalIgnoreCase)))?.Link;

                            if (reservedInstanceArtifactDetailsLink != null)
                            {
                                var reservedInstanceArtifactDetails =
                                    reservedInstanceArtifactDetailsLink
                                        .InvokeAsync<ReservedInstanceArtifactDetails>(partnerOperations)
                                        .Result;
                                this.Context.ConsoleHelper.WriteObject(reservedInstanceArtifactDetails);
                            }

                            break;
                    }
                }
                catch (Exception ex)
                {
                    this.Context.ConsoleHelper.WriteObject(ex.Message, "Artifact Details");
                }
            }
        }