Example #1
0
        // Dependency injection uses this constructor to instantiate MainDialog
        public MainDialog(ConnectionRecognizer luisRecognizer, PersonalDetailsDialog personalDetailsDialog, TopFiveDialog topFiveDialog, QuestionnaireChoiceDialog questionnaireChoiceDialog, ReenterDetailsDialog reenterDetailsDialog, AuthenticationDialog authenticationDialog, UploadTipsOrQuestionnairesDialog uploadTipsOrQuestionnairesDialog, NumberOfTipsDialog numberOfTipsDialog, UploadTipsDialog uploadTipsDialog, NameOfQuestionnaireDialog nameOfQuestionnaireDialog, UploadQuestionnairesDialog uploadQuestionnairesDialog, ILogger <MainDialog> logger /*, ConcurrentDictionary<string, ConversationReference> conversationReferences*/)
            : base(nameof(MainDialog))
        {
            _luisRecognizer = luisRecognizer;
            Logger          = logger;
            //_conversationReferences = conversationReferences;

            AddDialog(new TextPrompt(nameof(TextPrompt)));
            AddDialog(personalDetailsDialog);
            AddDialog(authenticationDialog);
            AddDialog(uploadTipsOrQuestionnairesDialog);
            AddDialog(topFiveDialog);
            AddDialog(questionnaireChoiceDialog);
            AddDialog(reenterDetailsDialog);
            AddDialog(numberOfTipsDialog);
            AddDialog(uploadTipsDialog);
            AddDialog(nameOfQuestionnaireDialog);
            AddDialog(uploadQuestionnairesDialog);
            AddDialog(new WaterfallDialog(nameof(WaterfallDialog), new WaterfallStep[]
            {
                IntroStepAsync,
                ActStepAsync,
                FinalStepAsync,
            }));

            // The initial child Dialog to run.
            InitialDialogId = nameof(WaterfallDialog);
        }
 private async Task <DialogTurnResult> FinalStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
 {
     if ((bool)stepContext.Result)
     {
         PersonalDetailsDialog.ClearDetails();
         return(await stepContext.BeginDialogAsync(nameof(PersonalDetailsDialog), PersonalDetailsDialog.PersonalDetails, cancellationToken));
     }
     else
     {
         return(await stepContext.EndDialogAsync(PersonalDetailsDialog.PersonalDetails, cancellationToken));
     }
 }