public MainDialog( BotSettings settings, BotServices services, ResponseManager responseManager, ConversationState conversationState, ProactiveState proactiveState, CreateEventDialog createEventDialog, ChangeEventStatusDialog changeEventStatusDialog, TimeRemainingDialog timeRemainingDialog, SummaryDialog summaryDialog, UpdateEventDialog updateEventDialog, ConnectToMeetingDialog connectToMeetingDialog, UpcomingEventDialog upcomingEventDialog, IBotTelemetryClient telemetryClient) : base(nameof(MainDialog), telemetryClient) { _settings = settings; _services = services; _responseManager = responseManager; _conversationState = conversationState; TelemetryClient = telemetryClient; // Initialize state accessor _stateAccessor = _conversationState.CreateProperty <CalendarSkillState>(nameof(CalendarSkillState)); // Register dialogs AddDialog(createEventDialog ?? throw new ArgumentNullException(nameof(createEventDialog))); AddDialog(changeEventStatusDialog ?? throw new ArgumentNullException(nameof(changeEventStatusDialog))); AddDialog(timeRemainingDialog ?? throw new ArgumentNullException(nameof(timeRemainingDialog))); AddDialog(summaryDialog ?? throw new ArgumentNullException(nameof(summaryDialog))); AddDialog(updateEventDialog ?? throw new ArgumentNullException(nameof(updateEventDialog))); AddDialog(connectToMeetingDialog ?? throw new ArgumentNullException(nameof(connectToMeetingDialog))); AddDialog(upcomingEventDialog ?? throw new ArgumentNullException(nameof(upcomingEventDialog))); }
public SummaryDialog( BotSettings settings, BotServices services, ResponseManager responseManager, ConversationState conversationState, UpdateEventDialog updateEventDialog, ChangeEventStatusDialog changeEventStatusDialog, IServiceManager serviceManager, IBotTelemetryClient telemetryClient, MicrosoftAppCredentials appCredentials) : base(nameof(SummaryDialog), settings, services, responseManager, conversationState, serviceManager, telemetryClient, appCredentials) { TelemetryClient = telemetryClient; var initStep = new WaterfallStep[] { Init, }; var showNext = new WaterfallStep[] { GetAuthToken, AfterGetAuthToken, ShowNextEvent, }; var showSummary = new WaterfallStep[] { GetAuthToken, AfterGetAuthToken, ShowEventsList, CallReadEventDialog, AskForShowOverview, AfterAskForShowOverview }; var readEvent = new WaterfallStep[] { ReadEvent, AfterReadOutEvent, }; // Define the conversation flow using a waterfall model. AddDialog(new WaterfallDialog(Actions.GetEventsInit, initStep) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ShowNextEvent, showNext) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ShowEventsSummary, showSummary) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.Read, readEvent) { TelemetryClient = telemetryClient }); AddDialog(updateEventDialog ?? throw new ArgumentNullException(nameof(updateEventDialog))); AddDialog(changeEventStatusDialog ?? throw new ArgumentNullException(nameof(changeEventStatusDialog))); // Set starting dialog for component InitialDialogId = Actions.GetEventsInit; }
public ShowEventsDialog( BotSettings settings, BotServices services, ResponseManager responseManager, ConversationState conversationState, UpdateEventDialog updateEventDialog, ChangeEventStatusDialog changeEventStatusDialog, IServiceManager serviceManager, IBotTelemetryClient telemetryClient, MicrosoftAppCredentials appCredentials) : base(nameof(ShowEventsDialog), settings, services, responseManager, conversationState, serviceManager, telemetryClient, appCredentials) { TelemetryClient = telemetryClient; var showMeetings = new WaterfallStep[] { GetAuthToken, AfterGetAuthToken, SetSearchCondition, }; var searchEvents = new WaterfallStep[] { SearchEventsWithEntities, FilterTodayEvent, AddConflictFlag, ShowAskParameterDetails, ShowEventsList }; var showNextMeeting = new WaterfallStep[] { ShowNextMeeting, }; var showEventsOverview = new WaterfallStep[] { ShowEventsOverview, PromptForNextAction, HandleNextAction }; var showEventsOverviewAgain = new WaterfallStep[] { ShowEventsOverviewAgain, PromptForNextAction, HandleNextAction }; var showFilteredEvents = new WaterfallStep[] { ShowFilteredEvents, PromptForNextAction, HandleNextAction }; var readEvent = new WaterfallStep[] { GetAuthToken, AfterGetAuthToken, ReadEvent, PromptForNextActionAfterRead, HandleNextActionAfterRead, }; var updateEvent = new WaterfallStep[] { UpdateEvent, ReShow }; var changeEventStatus = new WaterfallStep[] { ChangeEventStatus, ReShow }; var reshow = new WaterfallStep[] { AskForShowOverview, AfterAskForShowOverview }; // Define the conversation flow using a waterfall model. AddDialog(new WaterfallDialog(Actions.ShowEvents, showMeetings) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.SearchEvents, searchEvents) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ShowNextEvent, showNextMeeting) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ShowEventsOverview, showEventsOverview) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ShowEventsOverviewAgain, showEventsOverviewAgain) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ShowFilteredEvents, showFilteredEvents) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.ChangeEventStatus, changeEventStatus) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.UpdateEvent, updateEvent) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.Read, readEvent) { TelemetryClient = telemetryClient }); AddDialog(new WaterfallDialog(Actions.Reshow, reshow) { TelemetryClient = telemetryClient }); AddDialog(updateEventDialog ?? throw new ArgumentNullException(nameof(updateEventDialog))); AddDialog(changeEventStatusDialog ?? throw new ArgumentNullException(nameof(changeEventStatusDialog))); // Set starting dialog for component InitialDialogId = Actions.ShowEvents; }