def __init__(self, user_state: UserState, storage: object): super(CreateDeliveryDialog, self).__init__(CreateDeliveryDialog.__name__) self.user_state = user_state self.did_show_entry_msg = False self.storage = storage self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( Keys.WATER_FALL_DIALOG_ID.value, [ self.item_step, self.destination_step, self.time_step, self.confirm_step, self.acknowledgement_step ], ) ) self.initial_dialog_id = Keys.WATER_FALL_DIALOG_ID.value
def __init__( self, user_state: UserState, conversation_state: ConversationState, reminders_accessor, ): super(RemindersDialog, self).__init__(RemindersDialog.__name__) self.user_state = user_state self.conversation_state = conversation_state self.REMINDER = "value-reminder" self.conversation_state_accessor = self.conversation_state.create_property( "ActivityMappingState") self.reminders_accessor = reminders_accessor self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog( WaterfallDialog( "WFDialog", [ self.choice_step, self.reminder_step, self.time_step, self.confirm_step, ], )) self.initial_dialog_id = "WFDialog" self.recognizer = ReminderRecognizer()
def __init__(self, dialog_id: str = None): super(ContactsSelectionDialog, self).__init__( dialog_id or ContactsSelectionDialog.__name__ ) self.add_dialog( WaterfallDialog( WaterfallDialog.__name__, [ self.confirm_confirmedcasecontact_step, self.date_confirmedcasecontact_step, self.confirm_suspectedcasecontact_step, self.date_suspectedcasecontact_step, self.contacts_dates_step] ) ) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog( NumberPrompt(NumberPrompt.__name__) ) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.initial_dialog_id = WaterfallDialog.__name__
def __init__(self, dialog_id: str = None): super(DateResolverDialog, self).__init__(dialog_id or DateResolverDialog.__name__) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__, DateResolverDialog.datetime_prompt_validator)) self.add_dialog(WaterfallDialog(WaterfallDialog.__name__, [ self.initialStep, self.finalStep ])) self.initial_dialog_id(WaterfallDialog.__name__)
def __init__(self, dialog_id: str = None, telemetry_client: BotTelemetryClient = NullTelemetryClient()): super(DateResolverDialog, self).__init__(dialog_id or DateResolverDialog.__name__, telemetry_client) self.telemetry_client = telemetry_client date_time_prompt = DateTimePrompt( DateTimePrompt.__name__, DateResolverDialog.datetime_prompt_validator) date_time_prompt.telemetry_client = telemetry_client waterfall_dialog = WaterfallDialog( WaterfallDialog.__name__ + '2', [self.initial_step, self.final_step]) waterfall_dialog.telemetry_client = telemetry_client self.add_dialog(date_time_prompt) self.add_dialog(waterfall_dialog) self.initial_dialog_id = WaterfallDialog.__name__ + '2'
async def test_date_time_prompt(self): # Create new ConversationState with MemoryStorage and register the state as middleware. conver_state = ConversationState(MemoryStorage()) # Create a DialogState property dialog_state = conver_state.create_property("dialogState") # Create new DialogSet. dialogs = DialogSet(dialog_state) # Create and add DateTime prompt to DialogSet. date_time_prompt = DateTimePrompt("DateTimePrompt") dialogs.add(date_time_prompt) # Initialize TestAdapter async def exec_test(turn_context: TurnContext) -> None: prompt_msg = "What date would you like?" dialog_context = await dialogs.create_context(turn_context) results = await dialog_context.continue_dialog() if results.status == DialogTurnStatus.Empty: options = PromptOptions(prompt=MessageFactory.text(prompt_msg)) await dialog_context.begin_dialog("DateTimePrompt", options) else: if results.status == DialogTurnStatus.Complete: resolution = results.result[0] reply = MessageFactory.text( f"Timex: '{resolution.timex}' Value: '{resolution.value}'" ) await turn_context.send_activity(reply) await conver_state.save_changes(turn_context) adapt = TestAdapter(exec_test) test_flow = TestFlow(None, adapt) tf2 = await test_flow.send("hello") tf3 = await tf2.assert_reply("What date would you like?") tf4 = await tf3.send("5th December 2018 at 9am") await tf4.assert_reply( "Timex: '2018-12-05T09' Value: '2018-12-05 09:00:00'" )
def __init__(self, dialog_id: str = None): super(PersonalDataDialog, self).__init__(dialog_id or PersonalDataDialog.__name__) # Key name to store this dialogs state info in the StepContext self.PERSONAL_DATA = "value-personalData" self.add_dialog( WaterfallDialog(WaterfallDialog.__name__, [ self.first_name_step, self.family_name_step, self.gender_step, self.street_step, self.zipcode_step, self.city_step, self.telephone_step, self.email_step, self.birthday_step, self.final_step ])) self.add_dialog(ChoicePrompt(ChoicePrompt.__name__)) self.add_dialog(TextPrompt(TextPrompt.__name__)) self.add_dialog(NumberPrompt(NumberPrompt.__name__)) self.add_dialog(ConfirmPrompt(ConfirmPrompt.__name__)) self.add_dialog(DateTimePrompt(DateTimePrompt.__name__)) self.initial_dialog_id = WaterfallDialog.__name__