public static async Task <MetalLUISResponse> ParseUserInput(string rawQuery) { IDialogContext context = null; LuisResult result = new LuisResult(); BasicLuisDialog luis = new BasicLuisDialog(); //luis.Grreting(context,result).RunSynchronously(); var escapedQuery = Uri.EscapeDataString(rawQuery); using (var client = new HttpClient()) { var endpointAddress = ConfigurationManager.AppSettings["MetalQueryApiEndPoint"]; string request = $"{endpointAddress}{escapedQuery}"; var response = await client.GetAsync(request); if (response.IsSuccessStatusCode) { var jsonResponse = await response.Content.ReadAsStringAsync(); var deserializedResponse = JsonConvert.DeserializeObject <MetalLUISResponse>(jsonResponse); return(deserializedResponse); } } return(null); }
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as Activity; string userName = ""; bool userNameExists = context.UserData.TryGetValue("UserName", out userName); string resetStatus = ""; bool resetExists = context.UserData.TryGetValue("reset", out resetStatus); if (!resetExists) { context.UserData.SetValue("reset", ""); } if (activity.Text.ToLower().Equals("reset") || resetStatus.Equals("reset")) { context.UserData.SetValue("UserName", ""); context.UserData.SetValue("reset", ""); await context.PostAsync($"You have reset the data successfully. Please provide your name to re-start."); context.Wait(MessageReceivedAsync); } else if (activity.Text.ToLower().Equals("questions")) { var faqDialog = new BaseQnAMakerDialog(); await context.Forward(faqDialog, AfterFAQDialog, activity, CancellationToken.None); } else if (activity.Text.ToLower().Equals("category")) { var faqDialog = new AzureSearchDialog(); await context.Forward(faqDialog, AfterFAQDialog, activity, CancellationToken.None); } else { if (userNameExists && !(userName.Equals(string.Empty))) { // calculate something for us to return //int length = (activity.Text ?? string.Empty).Length; //// return our reply to the user //await context.PostAsync($"You sent {activity.Text} which was {length} characters"); var faqDialog = new RootDialog(); await context.Forward(faqDialog, AfterFAQDialog, activity, CancellationToken.None); } else { var faqDialog = new BasicLuisDialog(); await context.Forward(faqDialog, AfterFAQDialog, activity, CancellationToken.None); } } }
public async Task AfterCMSFormComplete(IDialogContext context, IAwaitable <CMSFormRequest> result) { CMSFormRequest cmsRequest = null; try { cmsRequest = await result; } catch (OperationCanceledException) { await context.PostAsync("You Cancelled the form!"); return; } if (cmsRequest != null) { context.PrivateConversationData.SetValue("ProfileComplete", true); context.PrivateConversationData.SetValue("FullName", cmsRequest.FullName); context.PrivateConversationData.SetValue("Department", cmsRequest.Department); context.PrivateConversationData.SetValue("UserEmail", cmsRequest.userEmail); context.PrivateConversationData.SetValue("WebAddress", cmsRequest.WebAddress); if (cmsRequest.PhoneNumber == null) { context.PrivateConversationData.SetValue("Phone", ""); } else { context.PrivateConversationData.SetValue("Phone", cmsRequest.PhoneNumber); } if (cmsRequest.ExtraNotes == null) { context.PrivateConversationData.SetValue("ExtraNotes", ""); } else { context.PrivateConversationData.SetValue("ExtraNotes", cmsRequest.ExtraNotes); } context.PrivateConversationData.SetValue("SupervisorName", cmsRequest.SupervisorName); context.PrivateConversationData.SetValue("SupervisorEmail", cmsRequest.SupervisorEmail); BasicLuisDialog.SendEmail(cmsRequest, null); await context.PostAsync("A request for CMS Account is successfuly raised. You will receive a confirmation email."); Fullname_lan = cmsRequest.FullName; Department_lan = cmsRequest.Department; UserEmail_lan = cmsRequest.userEmail; PromptDialog.Choice( context: context, resume: AfterFurtherAssistance, prompt: "Do you still require help with this issue? ", options: (IEnumerable <YesOrNo>)Enum.GetValues(typeof(YesOrNo)), retry: "Please select one of the choices.", promptStyle: PromptStyle.Auto ); } else { await context.PostAsync("Form returned empty response!"); } }