public MainDialog(ILogger <MainDialog> logger, IRecognizer luisRecognizer, BookingDialog bookingDialog)
            : base(nameof(MainDialog))
        {
            _logger         = logger;
            _luisRecognizer = luisRecognizer;

            AddDialog(new TextPrompt(nameof(TextPrompt)));

            // Add bookingDialog intents
            AddDialog(bookingDialog);

            // Create and add waterfall for main conversation loop
            // NOTE: we use a different task step if LUIS is not configured.
            WaterfallStep[] steps;
            if (luisRecognizer == null)
            {
                steps = new WaterfallStep[]
                {
                    PromptForTaskActionAsync,
                    InvokeTaskActionAsyncNoLuis,
                    ResumeMainLoopActionAsync,
                };
            }
            else
            {
                // LUIS is configured
                steps = new WaterfallStep[]
                {
                    PromptForTaskActionAsync,
                    InvokeTaskActionAsync,
                    ResumeMainLoopActionAsync,
                };
            }

            AddDialog(new WaterfallDialog(nameof(WaterfallDialog), steps));

            // The initial child Dialog to run.
            InitialDialogId = nameof(WaterfallDialog);
        }
 public MainDialog(ILogger <MainDialog> logger, BookingDialog bookingDialog)
     : this(logger, null, bookingDialog)
 {
 }