Exemple #1
0
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result)
        {
            var activity = await result as Activity;

            QnADialog dialog = new QnADialog();

            dialog.originalQuestion = activity.Text;
            await context.Forward(dialog, AfterQnADialog, activity, CancellationToken.None);
        }
Exemple #2
0
        private async Task AfterQnADialog(IDialogContext context, IAwaitable <object> result)
        {
            var    message         = context.Activity as IMessageActivity;
            string typeResultInQnA = (await result as Activity).Text;

            switch (typeResultInQnA)
            {
            case SharedObjects.ResultFromQnA.NO_RESULT_FROM_QNA:
                QnADialog dialog = new QnADialog();
                dialog.isComingFromLuis = true;


                string LuisAnswer = GetLuisAnswer(message.Text, out double score);

                if (LuisAnswer == "None")
                {
                    await context.PostAsync(SharedObjects.NO_RESULT_ANSWER);

                    AppInsightsTelemetryClient.TrackEvent(message.Id);
                    AppInsightsTelemetryClient.InsertTransaction(message, message.Text, 0, score, SharedObjects.NO_RESULT_ANSWER_IN_DB, LuisAnswer, AnswerType.noAnswer);
                }
                else
                {
                    dialog.originalQuestion = message.Text;
                    message.Text            = LuisAnswer;
                    await context.Forward(dialog, AfterQnADialog, message);
                }
                break;

            case SharedObjects.ResultFromQnA.NO_RESULT_FROM_QNA_AND_LUIS:
                await context.PostAsync(SharedObjects.NO_RESULT_ANSWER);

                break;

            default:
                context.Done(this);
                break;
            }
        }