Пример #1
0
        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();
            });
        }