Exemple #1
0
        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"]);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        public void BasicTest(string text, int numberOfEntities)
        {
            var results = model.Parse(text, referenceDate);

            Assert.AreEqual(results.Count, numberOfEntities);
        }