コード例 #1
0
        private async Task <bool> Recognize(ITurnContext turnContext, CancellationToken cancellationToken)
        {
            var dialogContext = await Dialogs.CreateContextAsync(turnContext, cancellationToken);

            RecognizerResult result = turnContext.Get <RecognizerResult>();

            if (result != null)
            {
                var topIntent = result?.GetTopScoringIntent();

                string memberKey = _members.Select(kp => kp.Key).FirstOrDefault((kp) => kp.Equals(topIntent.Value.intent, StringComparison.InvariantCultureIgnoreCase));
                if (memberKey is null)
                {
                    return(false);
                }
                Task  task = (Task)_members[memberKey].Invoke(this, new object[] { dialogContext, result, cancellationToken });
                await task;
                result = null;
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
        public static async Task <string> Translate(this ITurnContext context, string text)
        {
            string         translateText = text;
            ITextConverter textConverter = context.Get <ITextConverter>();

            if (textConverter != null)
            {
                var language = GetLanguageForTranslate(context);
                translateText = await textConverter.Translate(language, text);
            }
            return(translateText);
        }