private async Task CreateUserWalletAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as Activity; await activity.StartTypingAndWaitAsync(); var recognizes = new PromptRecognizer().RecognizeDouble(activity); var recognize = recognizes.FirstOrDefault(); if (recognize != null) { var userId = context.GetUserId(); var walletId = await FinancialApi.Dispatcher.CreateWalletAsync(userId.Value, recognize.Entity); context.SetUserWalletId(walletId); await context.PostAsync("Bacana! Temos tudo configurado agora! Podemos começar a registrar suas transações!"); context.Done(RootDialog.Ok); } else { await context.PostAsync("Por favor, escreva um valor válido!"); context.Wait(CreateUserWalletAsync); } }
public bool?RecognizeEntity(IMessageActivity messageActivity) { var yesKey = PromptDialog.PromptConfirm.Yes.ToString(CultureInfo.InvariantCulture); var noKey = PromptDialog.PromptConfirm.No.ToString(CultureInfo.InvariantCulture); var choices = new Dictionary <string, IReadOnlyList <string> > { { yesKey, this.patterns[PromptDialog.PromptConfirm.Yes].Select(x => x.ToLowerInvariant()) .ToList() }, { noKey, this.patterns[PromptDialog.PromptConfirm.No].Select(x => x.ToLowerInvariant()) .ToList() } }; var promptRecognizer = new PromptRecognizer(); var entityMatches = promptRecognizer.RecognizeChoices(messageActivity, choices); var entityWinner = entityMatches.MaxBy(x => x.Score) ?? new RecognizeEntity <string>(); return(entityWinner.Entity == yesKey ? true : (entityWinner.Entity == noKey ? (bool?)false : null)); }
public void TestNotRecognizeRegex() { var activity = new Activity { Text = "foo" }; var result = new PromptRecognizer().RecognizeLocalizedRegExp(activity, "Exp1", TestResources.ResourceManager); Assert.AreEqual(result.Count(), 0); }
public void TestRecognizeUsingDefaultCultureWhenLocaleNotFound() { var activity = new Activity { Text = "aider", Locale = "fr-FR" }; var result = new PromptRecognizer().RecognizeLocalizedRegExp(activity, "Exp1", TestResources.ResourceManager); Assert.AreEqual(result.Count(), 0); }
public void RecognizeTerm() { var activity = new Activity() { Text = "the value is twelve." }; var result = new PromptRecognizer().RecognizeNumbers(activity, null); Assert.AreEqual(12, result.FirstOrDefault().Entity); }
private void PromptRecognizersChoice(string choicesKey, string text, string expected, string locale = null) { var activity = new Activity { Text = text, Locale = locale }; var results = new PromptRecognizer().RecognizeLocalizedChoices(activity, choicesKey, Resources.ResourceManager, null); var top = results.MaxBy(x => x.Score); Assert.AreEqual(expected, top.Entity); }
private void PromptRecognizersOrdinals(string text, long expected, string locale = null) { var activity = new Activity { Text = text, Locale = locale }; var results = new PromptRecognizer().RecognizeOrdinals(activity); var top = results.MaxBy(x => x.Score); Assert.AreEqual(expected, top.Entity); }
public void TestRecognizeBooleanFalse() { var activity = new Activity { Text = "no" }; var result = new PromptRecognizer().RecognizeBooleans(activity); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(false, result.First().Entity); }
public void TestRecognizeChoiceWithoutSynonym() { var expectedValue = "c"; var activity = new Activity { Text = "c" }; var result = new PromptRecognizer().RecognizeLocalizedChoices(activity, "Choices1", TestResources.ResourceManager, null); Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.FirstOrDefault().Entity, expectedValue); }
public void TestRecognizeUsingDefaultCulture() { var expectedValue = "help"; var activity = new Activity { Text = expectedValue, Locale = "fr-FR" }; var result = new PromptRecognizer().RecognizeLocalizedRegExp(activity, "Exp1", TestResources.ResourceManager); Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.FirstOrDefault().Entity, expectedValue); }
public void TestRecognizeCardinal() { var activity = new Activity { Text = "1.23" }; var result = new PromptRecognizer().RecognizeNumbers(activity); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(1.23, result.First().Entity); // Can change the decimal point? }
public void TestRecognizeCardinalWords() { var activity = new Activity { Text = "seven" }; var result = new PromptRecognizer().RecognizeNumbers(activity); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(7, result.First().Entity); }
public void TestRecognizePositiveNumber() { var activity = new Activity { Text = "I will take +12" }; var result = new PromptRecognizer().RecognizeNumbers(activity); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(12, result.First().Entity); }
public void RecognizeTerm_Spanish() { var activity = new Activity() { Text = "El valor es doce.", Locale = "es" }; var result = new PromptRecognizer().RecognizeNumbers(activity, null); Assert.AreEqual(12, result.FirstOrDefault().Entity); }
public void TestRecognizeOrdinal() { var activity = new Activity { Text = "i'd like the second one" }; var result = new PromptRecognizer().RecognizeOrdinals(activity); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(2, result.First().Entity); }
public void TestRecognizeNegativeNumber() { var activity = new Activity { Text = "-13" }; var result = new PromptRecognizer().RecognizeNumbers(activity); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(-13, result.First().Entity); }
public void TestNotRecognizeChoiceValueIgnored() { var activity = new Activity { Text = "a" }; var options = new PromptRecognizeChoicesOptions { ExcludeValue = true }; var result = new PromptRecognizer().RecognizeLocalizedChoices(activity, "Choices1", TestResources.ResourceManager, options); Assert.AreEqual(result.Count(), 0); }
public void TestRecognizeMultipleBoolean() { var activity = new Activity { Text = "yes and no" }; var result = new PromptRecognizer().RecognizeBooleans(activity); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count()); Assert.AreEqual(true, result.First().Entity); Assert.AreEqual(false, result.Last().Entity); }
public void RecognizeNumbersWithLimits() { var activity = new Activity() { Text = "the value is 12" }; var result = new PromptRecognizer().RecognizeNumbers(activity, new PromptRecognizeNumbersOptions { IntegerOnly = true, MinValue = 50, MaxValue = 100 }); Assert.AreEqual(0, result.Count()); }
public void TestRecognizeMultipleNumber() { var activity = new Activity { Text = "1.7 and seven" }; var result = new PromptRecognizer().RecognizeNumbers(activity); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count()); Assert.AreEqual(1.7, result.First().Entity); Assert.AreEqual(7, result.Last().Entity); }
private void TestRecognizeBooleanValue(string text, bool expectedResult) { var activity = new Activity() { Text = text }; var result = new PromptRecognizer().RecognizeBooleans(activity); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); Assert.AreEqual(expectedResult, result.FirstOrDefault().Entity); }
public void TestRecognizeReverseOrdinal() { var activity = new Activity { Text = "i'd like the second to last one" }; var results = new PromptRecognizer().RecognizeOrdinals(activity); Assert.IsNotNull(results); Assert.IsTrue(results.Count() >= 2); var top = results.MaxBy(x => x.Score); Assert.AreEqual(-2, top.Entity); }
public void TestRecognizeRangeNumbers() { var activity = new Activity { Text = "1, 2.3, and seven" }; var result = new PromptRecognizer().RecognizeNumbers(activity, new PromptRecognizeNumbersOptions { MinValue = 2, MaxValue = 5 }); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count()); Assert.AreEqual(2.3, result.First().Entity); }
public void TestRecognizeMultipleIntegerOnly() { var activity = new Activity { Text = "1, 2.3, and seven" }; var result = new PromptRecognizer().RecognizeNumbers(activity, new PromptRecognizeNumbersOptions { IntegerOnly = true }); Assert.IsNotNull(result); Assert.AreEqual(2, result.Count()); Assert.AreEqual(1, result.First().Entity); Assert.AreEqual(7, result.Last().Entity); }
private void TestRecognizeTimeValue(string text, int hour = 0, int minute = 0, int second = 0, int millisecond = 0) { var activity = new Activity() { Text = text }; var result = new PromptRecognizer().RecognizeTimes(activity); Assert.IsNotNull(result); Assert.IsTrue(result.Any()); DateTime now = DateTime.Now; DateTime expectedDate = new DateTime(now.Year, now.Month, now.Day, hour, minute, second, millisecond); string expectedResult = expectedDate.TimeOfDay.ToString(); Assert.AreEqual(expectedResult, result.FirstOrDefault().Entity); }