// Dependency injection uses this constructor to instantiate MainDialog public MainDialog( ComplexParsingDialog complexDialog, SimpleParsingDialog simpleDialog, ConversationState conversationState, QueryFactory queryFactory, IComplexQueryHandler complexQueryHandler, ISimpleQueryHandler simpleQueryHandler, ILogger <MainDialog> logger ) : base(nameof(MainDialog)) { this.queryFactory = queryFactory; this.complexQueryHandler = complexQueryHandler; this.simpleQueryHandler = simpleQueryHandler; this.logger = logger; conversationStateAccessors = conversationState.CreateProperty <ConversationData>(nameof(ConversationData)); var waterfallSteps = new WaterfallStep[] { QueryParsingStepAsync, ShowResultStepAsync, FinalStepAsync }; AddDialog(new WaterfallDialog(nameof(WaterfallDialog), waterfallSteps)); AddDialog(new ChoicePrompt(nameof(ChoicePrompt))); AddDialog(complexDialog); AddDialog(simpleDialog); // The initial child Dialog to run. InitialDialogId = nameof(WaterfallDialog); }
public SimpleParsingDialog( SimpleStatementRecognizer simpleRecognizer, ISimpleQueryHandler queryHandler, ConversationState conversationState, ILogger <SimpleParsingDialog> logger ) : base(nameof(SimpleParsingDialog), conversationState, logger) { this.simpleRecognizer = simpleRecognizer; this.queryHandler = queryHandler; var waterfallSteps = new WaterfallStep[] { PromptStepAsync, ObjectTypeStepAsync, ActStepAsync, ProcessDonePromptAsync }; AddDialog(new WaterfallDialog(nameof(WaterfallDialog), waterfallSteps)); AddDialog(new ChoicePrompt(nameof(ChoicePrompt))); // The initial child Dialog to run. InitialDialogId = nameof(WaterfallDialog); }