Esempio n. 1
0
        private async Task <DialogTurnResult> SelectCityAsync(WaterfallStepContext stepContext,
                                                              CancellationToken cancellationToken)
        {
            if (!(bool)stepContext.Result)
            {
                return(await stepContext.EndDialogAsync(cancellationToken : cancellationToken));
            }

            var messageText = stepContext.Options?.ToString() ??
                              "Please choose  our office location are you looking for:";
            var promptMessage = MessageFactory.Text(messageText, messageText, InputHints.ExpectingInput);
            var options       = new PromptOptions
            {
                Prompt      = promptMessage,
                RetryPrompt =
                    MessageFactory.Text("Sorry, I did not understand. Do you want me to continue this conversation?"),
                Choices = (await _scrapper.GetCitiesHaveVacanciesAsync())
                          .Select(x => new Choice(x.Id.ToString())
                {
                    Action = new CardAction("messageBack",
                                            x.En,
                                            text: x.En,
                                            displayText: x.En)
                }
                                  )
                          .ToList(),
                Style = ListStyle.Auto
            };

            return(await stepContext.PromptAsync(nameof(ChoicePrompt), options, cancellationToken));
        }