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