public override ValidatorResult <DateTime> Validate(IBotContext context) { // Recognize Date DateTimeRecognizer dateRecognizer = DateTimeRecognizer.GetInstance(DateTimeOptions.None); DateTimeModel dateModel = dateRecognizer.GetDateTimeModel("en-US"); var result = dateModel.Parse(context.Request.AsMessageActivity().Text); if (result.Count > 0 && !string.IsNullOrEmpty(result[0].Text)) { try { return(new ValidatorResult <DateTime> { Value = DateTime.ParseExact(result[0].Text, "yyyy-MM-dd", CultureInfo.CurrentCulture) }); } catch (Exception e) { return(new ValidatorResult <DateTime> { Reason = Constants.DATE_ERROR }); } } else { return(new ValidatorResult <DateTime> { Reason = Constants.DATE_ERROR }); } }
public void BasicTest(DateTimeModel model, DateObject baseDateTime, string text, string expectedType, string expectedString, string expectedTimex) { var results = model.Parse(text, baseDateTime); Assert.AreEqual(1, results.Count); var result = results.First(); Assert.AreEqual(expectedString, result.Text); var values = result.Resolution["values"] as IEnumerable <Dictionary <string, string> >; Assert.AreEqual(expectedType, values.First()["type"]); Assert.AreEqual(expectedTimex, values.First()["timex"]); }
public void BasicTest(DateTimeModel model, DateObject baseDateTime, string text, string expectedType, string expectedString, string expectedTimex, string expectedFuture, string expectedPast) { var results = model.Parse(text, baseDateTime); Assert.AreEqual(1, results.Count); var result = results.First(); Assert.AreEqual(expectedString, result.Text); var values = result.Resolution["values"] as IEnumerable <Dictionary <string, string> >; Assert.AreEqual(expectedType, values.First()["type"]); Assert.AreEqual(expectedTimex, values.First()["timex"]); Assert.AreEqual(expectedFuture ?? values.Last()["value"], values.Last()["value"]); Assert.AreEqual(expectedPast ?? values.First()["value"], values.First()["value"]); TestWriter.Write(TestCulture.Chinese, model, baseDateTime, text, results); }
public void BasicTest(string text, int numberOfEntities) { var results = model.Parse(text, referenceDate); Assert.AreEqual(results.Count, numberOfEntities); }