private async Task LuisCallProcess(IDialogContext context, IAwaitable <object> result, JObject LuisResult)
        {
            ILuisProcessing LuisAPIProcessing = new LuisProcessing();

            var ProcessedLuisResult = await LuisAPIProcessing.DoProcessing(context, LuisResult);

            string StringName = ProcessedLuisResult.Name_0;

            if (StringName == "")
            {
                context.Wait(MessageReceivedAsync);
            }
            else
            {
                var QnAAnswer = await MakeNameQnAMakerCall(context, StringName);

                if (QnAAnswer.Score < 0.2)
                {
                    await context.PostAsync("I am sorry I could not find the name " + StringName + " in my Database");

                    context.Wait(MessageReceivedAsync);
                }
                else
                {
                    JObject StarwarsAnswer = await CallStarWarsApi(context, QnAAnswer.Answer);
                    await ProcessAndPostToUser(context, ProcessedLuisResult, StarwarsAnswer);

                    context.Wait(MessageReceivedAsync);
                }
            }
        }
Beispiel #2
0
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result)
        {
            ILuisRequest    LuisAPI           = new LuisRequest();
            ILuisProcessing LuisAPIProcessing = new LuisProcessing();
            var             activity          = await result as Activity;

            var LuisResult = await MakeLuisCall(context, activity.Text, LuisAPI);

            var ProcessedLuisResult = await LuisAPIProcessing.DoProcessingComplex(context, LuisResult);

            if ((ProcessedLuisResult.Name_0 == "") && (ProcessedLuisResult.Name_1 == ""))
            {
                context.Wait(MessageReceivedAsync);
            }
            else
            {
                var QnAAnswer = await MakeNameQnAMakerCall(context, ProcessedLuisResult);

                if (QnAAnswer[0].Score < 0.2)
                {
                    await context.PostAsync("I am sorry I could not find the name " + ProcessedLuisResult.Name_0 + " in my Database");

                    context.Wait(MessageReceivedAsync);
                }
                else if (QnAAnswer[1].Score < 0.2)
                {
                    await context.PostAsync("I am sorry I could not find the name " + ProcessedLuisResult.Name_1 + " in my Database");

                    context.Wait(MessageReceivedAsync);
                }
                else if ((QnAAnswer[1].Score < 0.2) && (QnAAnswer[0].Score < 0.2))
                {
                    await context.PostAsync("I am sorry I could not find neither name "
                                            + ProcessedLuisResult.Name_0 + " nor the name "
                                            + ProcessedLuisResult.Name_0 + " in my Database");

                    context.Wait(MessageReceivedAsync);
                }
                else
                {
                    JObject StarwarsAnswer1 = await CallStarWarsApi(context, QnAAnswer[0].Answer);

                    JObject StarwarsAnswer2 = await CallStarWarsApi(context, QnAAnswer[1].Answer);

                    await ProcessAndPostToUser(context, ProcessedLuisResult, StarwarsAnswer1, StarwarsAnswer2);

                    context.Wait(MessageReceivedAsync);
                }
            }
        }
Beispiel #3
0
        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result)
        {
            var activity = await result as Activity;

            ILuisRequest    LuisAPI           = new LuisRequest();
            ILuisProcessing LuisAPIProcessing = new LuisProcessing();

            JObject LuisResult = await MakeLuisCall(context, activity.Text, LuisAPI);

            TransferObjectLuis ProcessedLuisResult = await LuisAPIProcessing.DoProcessing(context, LuisResult);

            if (String.IsNullOrEmpty(ProcessedLuisResult.Name_0))
            {
                await context.PostAsync("There is no droid you are looking for.");

                context.Wait(MessageReceivedAsync);
            }
            else
            {
                var QnAAnswer = await MakeQnAMakerCallforConversion(context, ProcessedLuisResult.Name_0);

                if (QnAAnswer.Score < 0.2)
                {
                    await context.PostAsync($"I am sorry I could not find the name {ProcessedLuisResult.Name_0} in my Database");

                    context.Wait(MessageReceivedAsync);
                }
                else
                {
                    JObject StarwarsAnswer = await CallStarWarsApi(context, QnAAnswer.Answer);
                    await ProcessAndPostToUser(context, ProcessedLuisResult, StarwarsAnswer);

                    context.Wait(MessageReceivedAsync);
                }
            }
        }