from botbuilder.core import ActivityHandler, ConversationState, TurnContext, UserState from botbuilder.dialogs import Dialog from helpers.dialog_helper import DialogHelper class DialogBot(ActivityHandler): def __init__( self, conversation_state: ConversationState, user_state: UserState, dialog: Dialog, ): super(DialogBot, self).__init__() self.conversation_state = conversation_state self.user_state = user_state self.dialog = dialog async def on_turn(self, turn_context: TurnContext) -> None: await super().on_turn(turn_context) # Save any state changes that might have occurred during the turn. await self.conversation_state.save_changes(turn_context) await self.user_state.save_changes(turn_context) async def on_message_activity(self, turn_context: TurnContext) -> None: # Run the Dialog with the new message Activity. await DialogHelper.run_dialog( self.dialog, turn_context, self.conversation_state.create_property("DialogState"), )