То, что вы можете использовать, это Валидаторы , проверьте эту статью для получения дополнительной информации или найдите ниже фрагменты кода [c #] в качестве резюме.
Я также добавил в конце фрагмент Python
Когда пользователь отвечает на ваше приглашение, будет запущена проверка. Если проверка вернет false, пользователю будет отправлено приглашение повторить попытку
Нет необходимости go вернуться к предыдущему шагу, если вы реализуете валидаторы
AddDialog(new TextPrompt("TextPromptId", UserNameValidation));
AddDialog(new NumberPrompt<int>("NumberPromptId", MobileNumberValidation));
AddDialog(new ChoicePrompt("ChoicePromptId", ChoiceValidataion));
Username Validator:
private Task<bool> UserNameValidation(PromptValidatorContext<string> promptContext, CancellationToken cancellationToken)
{
return Task.FromResult(true);
}
Валидатор выбора:
private Task<bool> ChoiceValidataion(PromptValidatorContext<FoundChoice> promptContext, CancellationToken cancellationToken)
{
return Task.FromResult(true);
}
Валидатор для мобильных телефонов:
private async Task<bool> MobileNumberValidation(PromptValidatorContext<int> promptcontext, CancellationToken cancellationtoken)
{
if (!promptcontext.Recognized.Succeeded)
{
await promptcontext.Context.SendActivityAsync("Hello, Please enter the valid mobile no",
cancellationToken: cancellationtoken);
return false;
}
int count = Convert.ToString(promptcontext.Recognized.Value).Length;
if (count != 10)
{
await promptcontext.Context.SendActivityAsync("Hello , you are missing some number !!!",
cancellationToken: cancellationtoken);
return false;
}
return true;
}
Я не разработчик Python, но вы нашли образец python в Здесь на вкладке Python и в приведенном ниже фрагменте:
async def age_prompt_validator(prompt_context: PromptValidatorContext) -> bool:
# This condition is our validation rule. You can also change the value at this point.
return (
prompt_context.recognized.succeeded
and 0 < prompt_context.recognized.value < 150
)
Надеюсь, что это поможет