private async getAzureResourceDetails()

in src/configure/configure.ts [390:433]


    private async getAzureResourceDetails(): Promise<void> {
        // show available subscriptions and get the chosen one
        let subscriptionList = extensionVariables.azureAccountExtensionApi.filters.map((subscriptionObject) => {
            return <QuickPickItemWithData>{
                label: `${<string>subscriptionObject.subscription.displayName}`,
                data: subscriptionObject,
                description: `${<string>subscriptionObject.subscription.subscriptionId}`
            };
        });

        if(this.inputs.pipelineParameters.pipelineTemplate.targetType != TargetResourceType.None) {
            let selectedSubscription: QuickPickItemWithData = await this.controlProvider.showQuickPick(constants.SelectSubscription, subscriptionList, { placeHolder: Messages.selectSubscription });
            this.inputs.targetResource.subscriptionId = selectedSubscription.data.subscription.subscriptionId;
            this.inputs.azureSession = getSubscriptionSession(this.inputs.targetResource.subscriptionId);

            // show available resources and get the chosen one
            this.appServiceClient = new AppServiceClient(this.inputs.azureSession.credentials2, this.inputs.azureSession.tenantId, this.inputs.azureSession.environment.portalUrl, this.inputs.targetResource.subscriptionId);

            let resourceArray: Promise<Array<{label: string, data: ResourceManagementModels.GenericResource}>> = null;
            let selectAppText: string = "";
            let placeHolderText: string = "";

            switch(this.inputs.pipelineParameters.pipelineTemplate.targetType) {
                case TargetResourceType.WebApp:
                default:
                    resourceArray = this.appServiceClient.GetAppServices(this.inputs.pipelineParameters.pipelineTemplate.targetKind)
                        .then((webApps) => webApps.map(x => { return { label: x.name, data: x }; }));
                    selectAppText = this.getSelectAppText(this.inputs.pipelineParameters.pipelineTemplate.targetKind);
                    placeHolderText = this.getPlaceholderText(this.inputs.pipelineParameters.pipelineTemplate.targetKind);
                    break;
            }

            let selectedResource: QuickPickItemWithData = await this.controlProvider.showQuickPick(
                selectAppText,
                resourceArray,
                { placeHolder:  placeHolderText },
                TelemetryKeys.WebAppListCount);

            this.inputs.targetResource.resource = selectedResource.data;
        } else if(subscriptionList.length > 0 ) {
            this.inputs.targetResource.subscriptionId = subscriptionList[0].data.subscription.subscriptionId;
            this.inputs.azureSession = getSubscriptionSession(this.inputs.targetResource.subscriptionId);
        }
    }