Вы можете использовать context.UserData
для хранения данных, связанных с пользователем.
В вашем случае вы можете установить значение в случае, если значение отсутствует в UserData
, используя ключ, например, GratitudeTriggered
, и каждый раз проверять, существует ли ключ в данных пользователя. Вы также можете настроить логику в соответствии с вашими потребностями, такими как соответствие определенному значению, наличие значения и т. Д.
Пример кода:
[LuisIntent("Gratitude")]
public async Task Gratitude(IDialogContext context, IAwaitable<IMessageActivity> message, LuisResult result)
{
if (context.UserData.TryGetValue("GratitudeTriggered", out bool gratitudeTriggered))
{
//Triggered for the first time, store it in UserData that the Gratitude is triggered
context.UserData.SetValue("GratitudeTriggered", "yes");
PromptDialog.Choice(context,
ResumeAfterGratitude,
new[] { "Yes", "No" },
"Thank you. Would you like us to contact you?",
promptStyle: PromptStyle.Keyboard, attempts: 4
);
}
else
await context.PostAsync("Glad to help");
}