private void OnLuisUtteranceResultUpdated(object sender, LuisUtteranceResultEventArgs e) { Application.Current.Dispatcher.Invoke(async() => { StringBuilder sb = new StringBuilder(ResultText); _requiresResponse = e.RequiresReply; sb.AppendFormat("Status: {0}\n", e.Status); sb.AppendFormat("Summary: {0}\n\n", e.Message); sb.AppendFormat("Action: {0}\n", e.ActionName); sb.AppendFormat("Action triggered: {0}\n\n", e.ActionExecuted); if (e.ActionExecuted) { await TriggerActionExectution(e.ActionName, e.ActionValue); } if (e.RequiresReply && !string.IsNullOrEmpty(e.DialogResponse)) { await _ttsClient.SpeakAsync(e.DialogResponse, CancellationToken.None); sb.AppendFormat("Response: {0}\n", e.DialogResponse); sb.Append("Reply in the left textfield"); RecordUtterance(sender); } ResultText = sb.ToString(); }); }
/// <summary> /// Event handler function for LUIS results updates. Will print the results to the UI. /// If the results requires a response, the application will ask for it through the speakers, and /// wait for the response /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnLuisUtteranceResultUpdated(object sender, LuisUtteranceResultEventArgs e) { Application.Current.Dispatcher.Invoke(async() => { StringBuilder sb = new StringBuilder(ResultText); _requiresResponse = e.RequiresReply; sb.AppendFormat("Status: {0}\n", e.Status); sb.AppendFormat("Summary: {0}\n\n", e.Message); if (!string.IsNullOrEmpty(e.IntentName)) { await TriggerActionExectution(e.IntentName, e.EntityName); } ResultText = sb.ToString(); }); }
private void OnLuisUtteranceResultUpdated(object sender, LuisUtteranceResultEventArgs e) { Application.Current.Dispatcher.Invoke(() => { StringBuilder sb = new StringBuilder(); _lastResult = e.Result; _requiresResponse = e.RequiresReply; sb.AppendFormat("Status: {0}\n", e.Status); sb.AppendFormat("Summary: {0}\n\n", e.Message); if (e.Result.Entities != null && e.Result.Entities.Count != 0) { sb.AppendFormat("Entities found: {0}\n", e.Result.Entities.Count); sb.Append("Entities:\n"); foreach (var entities in e.Result.Entities) { foreach (var entity in entities.Value) { sb.AppendFormat("Name: {0}\tValue: {1}\n", entity.Name, entity.Value); } } sb.Append("\n"); } sb.AppendFormat("Action: {0}\n", e.ActionName); sb.AppendFormat("Action triggered: {0}\n\n", e.ActionExecuted); if (e.RequiresReply && !string.IsNullOrEmpty(e.DialogResponse)) { sb.AppendFormat("Response: {0}\n", e.DialogResponse); sb.Append("Reply in the left textfield"); } ResultText = sb.ToString(); }); }