public async prompt()

in appservice/src/createAppService/AppServicePlanSkuStep.ts [18:56]


    public async prompt(context: IAppServiceWizardContext): Promise<void> {
        let skus: ExtendedSkuDescription[] = context.advancedCreation ? this.getRecommendedSkus().concat(this.getAdvancedSkus()) : this.getRecommendedSkus();
        if (context.newSiteKind === AppKind.functionapp) {
            skus.push(...this.getElasticPremiumSkus());
        } else if (context.newSiteKind?.includes(AppKind.workflowapp)) {
            skus = this.getWorkflowStandardSkus();
        }

        const regExp: RegExp | undefined = context.planSkuFamilyFilter;
        if (regExp) {
            skus = skus.filter(s => !s.family || regExp.test(s.family));
        }

        const pricingTiers: IAzureQuickPickItem<WebSiteManagementModels.SkuDescription | undefined>[] = skus.map(s => {
            return {
                label: s.label || nonNullProp(s, 'name'),
                description: s.description || s.tier,
                data: s,
                group: s.group || localize('additionalOptionsLabel', 'Additional Options')
            };
        });

        pricingTiers.push({ label: localize('ShowPricingCalculator', '$(link-external) Show pricing information...'), data: undefined, suppressPersistence: true });

        while (!context.newPlanSku) {
            const placeHolder = localize('pricingTierPlaceholder', 'Select a pricing tier');
            context.newPlanSku = (await context.ui.showQuickPick(pricingTiers, { placeHolder, suppressPersistence: true, enableGrouping: context.advancedCreation })).data;

            if (!context.newPlanSku) {
                if (context.newSiteOS === WebsiteOS.linux) {
                    await openUrl('https://aka.ms/AA60znj');
                } else {
                    await openUrl('https://aka.ms/AA6202c');
                }
            }
        }

        await setLocationsTask(context);
    }