public async Task None(IDialogContext context, LuisResult result)
        {
            var factory = new DialogFactory();
            AzureBotLuisDialog <string> dialog = await factory.Create(result.Query);

            if (dialog != null)
            {
                var message = context.MakeMessage();
                message.Text = userToBot;

                var accessToken = await context.GetAccessToken(resourceId.Value);

                if (string.IsNullOrEmpty(accessToken))
                {
                    return;
                }
                await context.Forward(dialog, this.ResumeAfterForward, message, CancellationToken.None);
            }
            else
            {
                string message = $"Sorry, I did not understand '{result.Query}'. Type 'help' if you need assistance.";

                await context.PostAsync(message);

                context.Wait(MessageReceived);
            }
        }
Exemple #2
0
        public async Task None(IDialogContext context, LuisResult result)
        {
            var factory = new DialogFactory();
            AzureBotLuisDialog <string> dialog = await factory.Create(result.Query);

            if (dialog != null)
            {
                var message = context.MakeMessage();
                message.Text = userToBot;

                var accessToken = await context.GetAccessToken(resourceId.Value);

                if (string.IsNullOrEmpty(accessToken))
                {
                    return;
                }
                await context.Forward(dialog, this.ResumeAfterForward, message, CancellationToken.None);
            }
            else
            {
                if (new[] { "cancel", "reset", "restart", "kill", "undo", "start over" }.Any(c => result.Query.Contains(c)))
                {
                    context.Reset();
                    context.ConversationData.Clear();
                    context.UserData.Clear();
                    context.PrivateConversationData.Clear();
                    await context.FlushAsync(CancellationToken.None);

                    await context.PostAsync($"Alright, I've reset everything, let's try again.");

                    await this.Help(context, new LuisResult());
                }
                else
                {
                    string message = $"Sorry, I did not understand '{result.Query}'. Type 'help' if you need assistance.";
                    await context.PostAsync(message);

                    context.Wait(MessageReceived);
                }
            }
        }