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); } } }
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); } } }
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); } } }