Esempio n. 1
0
        public void Minute10()
        {
            var m = new DateTimeMatcher("****.**.**-**-**:10");
            //
            var dt000500 = CreateDateTime(0, 5);
            var dt001000 = CreateDateTime(0, 10);
            var dt001030 = CreateDateTime(0, 10, 30);
            var dt001500 = CreateDateTime(0, 15);
            var dt001530 = CreateDateTime(0, 15, 30);
            var dt001700 = CreateDateTime(0, 17);
            //
            var dt010500 = CreateDateTime(1, 5);
            var dt011000 = CreateDateTime(1, 10);
            var dt011030 = CreateDateTime(1, 10, 30);
            var dt011500 = CreateDateTime(1, 15);
            var dt011530 = CreateDateTime(1, 15, 30);
            var dt011700 = CreateDateTime(1, 17);

            // only match minute 10
            AssertMatcher(m, dt000500, false);
            AssertMatcher(m, dt001500, false);
            AssertMatcher(m, dt001530, false);
            AssertMatcher(m, dt001700, false);
            AssertMatcher(m, dt001000, true);
            AssertMatcher(m, dt001030, false);
            m.ResetPrevious();
            AssertMatcher(m, dt010500, false);
            AssertMatcher(m, dt011500, false);
            AssertMatcher(m, dt011530, false);
            AssertMatcher(m, dt011700, false);
            AssertMatcher(m, dt011030, true);
            AssertMatcher(m, dt011000, false);
        }
Esempio n. 2
0
        private bool SetupInterval()
        {
            switch (this.IntervalStartOptionStr.ToLower())
            {
            case "run_next":
                this.IntervalStartOption = IntervalConditionStartOption.RunNext;
                break;

            case "run_on_join":
                this.IntervalStartOption = IntervalConditionStartOption.RunOnJoin;
                break;

            case "start_at":
                this.IntervalStartOption = IntervalConditionStartOption.StartAt;
                this.IntervalStartAt     = DateTimeMatcher.ParseDateTimeString(this.IntervalStartAtStr);
                break;

            case "not_start":
            default:
                this.IntervalStartOption = IntervalConditionStartOption.NotStart;
                break;
            }
            if (this.IntervalStartOption == IntervalConditionStartOption.StartAt && this.IntervalStartAt == null)
            {
                return(false);
            }
            return(true);
        }
Esempio n. 3
0
        public void Any13hour()
        {
            var m = new DateTimeMatcher("****.**.**-**-13:**");
            //
            var dt125959 = CreateDateTime(12, 59, 59);
            var dt130000 = CreateDateTime(13, 0);
            var dt130015 = CreateDateTime(13, 0, 15);
            var dt130800 = CreateDateTime(13, 8);
            var dt130830 = CreateDateTime(13, 8, 30);
            var dt135959 = CreateDateTime(13, 59, 59);
            var dt140000 = CreateDateTime(14, 0);

            // only match 13 hour
            AssertMatcher(m, dt125959, false);
            AssertMatcher(m, dt140000, false);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt130000, true);
            AssertMatcher(m, dt130015, false);
            AssertMatcher(m, dt130800, false);
            AssertMatcher(m, dt130830, false);
            AssertMatcher(m, dt135959, false);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt130015, true);
            AssertMatcher(m, dt130000, false);
            AssertMatcher(m, dt130800, false);
            AssertMatcher(m, dt130830, false);
            AssertMatcher(m, dt135959, false);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt130800, true);
            AssertMatcher(m, dt130000, false);
            AssertMatcher(m, dt130015, false);
            AssertMatcher(m, dt130830, false);
            AssertMatcher(m, dt135959, false);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt135959, true);
            AssertMatcher(m, dt130000, false);
            AssertMatcher(m, dt130015, false);
            AssertMatcher(m, dt130800, false);
            AssertMatcher(m, dt130830, false);
            m.ResetPrevious();
        }
Esempio n. 4
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Initialize the dialog, based on the old matcher, if any, and if recognized.
        /// </summary>
        /// <param name="matcher1">The matcher1.</param>
        /// ------------------------------------------------------------------------------------
        public void SetDlgValues(IMatcher matcher1)
        {
            CheckDisposed();

            DateTimeMatcher matcher = matcher1 as DateTimeMatcher;

            if (matcher == null)
            {
                return;
            }
            switch (matcher.MatchType)
            {
            case DateTimeMatcher.DateMatchType.On:
                m_typeCombo.SelectedIndex = 0;
                break;

            case DateTimeMatcher.DateMatchType.NotRange:
                m_typeCombo.SelectedIndex = 1;
                break;

            case DateTimeMatcher.DateMatchType.Before:
                m_typeCombo.SelectedIndex = 2;
                break;

            case DateTimeMatcher.DateMatchType.After:
                m_typeCombo.SelectedIndex = 3;
                break;

            case DateTimeMatcher.DateMatchType.Range:
                m_typeCombo.SelectedIndex = 4;
                break;
            }

            SelectionStart = matcher.Start;
            SelectionEnd   = matcher.End;

            HandleGenDate           = matcher.HandleGenDate;
            m_chkStartBC.Checked    = !matcher.IsStartAD;
            m_chkEndBC.Checked      = !matcher.IsEndAD;
            m_chkUnspecific.Checked = matcher.UnspecificMatching;
        }
Esempio n. 5
0
        public void EveryMinutes()
        {
            var matchers = new DateTimeMatcher[] {
                new DateTimeMatcher("****.**.**-**-**:*0"),
                new DateTimeMatcher("****.**.**-**-**:*1"),
                new DateTimeMatcher("****.**.**-**-**:*2"),
                new DateTimeMatcher("****.**.**-**-**:*3"),
                new DateTimeMatcher("****.**.**-**-**:*4"),
                new DateTimeMatcher("****.**.**-**-**:*5"),
                new DateTimeMatcher("****.**.**-**-**:*6"),
                new DateTimeMatcher("****.**.**-**-**:*7"),
                new DateTimeMatcher("****.**.**-**-**:*8"),
                new DateTimeMatcher("****.**.**-**-**:*9")
            };
            var dt = CreateDateTime(12, 59);

            for (var i = 0; i < 60 * 24 + 1; i++)
            {
                Assert.IsTrue(matchers.Any(m => m.IsMatch(dt)));
                dt = dt.AddMinutes(1);
            }
        }
Esempio n. 6
0
        public void EveryMD()
        {
            var m = new DateTimeMatcher("****.08.14-**-00:00");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 0, 0, 0);

            for (var i = 0; i < 366 * 10; i++)
            {
                var dt = first.AddDays(i);
                if (dt.Month == 8 && dt.Day == 14)
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Esempio n. 7
0
        public void EveryLast()
        {
            var m = new DateTimeMatcher("****.**.LL-**-00:00");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 0, 0, 0);

            for (var i = 0; i < 380; i++)
            {
                var dt = first.AddDays(i);
                if (dt.IsLastDayInMonth())
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Esempio n. 8
0
        public void Tuesday()
        {
            var m = new DateTimeMatcher("****.**.**-*2-21:05");

            Assert.IsTrue(m.Valid);
            var tue = new DateTime(2018, 8, 14, 21, 5, 0);

            for (var i = 0; i < 200; i++)
            {
                if (i % 7 == 0)
                {
                    // tuesday
                    Assert.IsTrue(m.IsMatch(tue.AddDays(i)));
                    Assert.IsFalse(m.IsMatch(tue.AddDays(i).AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(tue.AddDays(i).AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(tue.AddDays(i)));
                }
            }
        }
Esempio n. 9
0
        public void EveryX5Minute()
        {
            var m = new DateTimeMatcher("****.**.**-**-**:*5");
            //
            var dt000000 = CreateDateTime(0, 0);
            var dt000500 = CreateDateTime(0, 5);
            var dt000530 = CreateDateTime(0, 5, 30);
            var dt001000 = CreateDateTime(0, 10);
            var dt001500 = CreateDateTime(0, 15);
            var dt001700 = CreateDateTime(0, 17);
            var dt002500 = CreateDateTime(0, 25);
            var dt003500 = CreateDateTime(0, 35);
            var dt004500 = CreateDateTime(0, 45);
            var dt005500 = CreateDateTime(0, 55);

            // only match X5 minutes
            AssertMatcher(m, dt000000, false);
            AssertMatcher(m, dt001000, false);
            AssertMatcher(m, dt001700, false);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt000500, true);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt000530, true);
            m.ResetPrevious();
            //
            AssertMatcher(m, dt000500, true);
            AssertMatcher(m, dt000530, false);
            AssertMatcher(m, dt001000, false);
            AssertMatcher(m, dt001500, true);
            AssertMatcher(m, dt001700, false);
            AssertMatcher(m, dt002500, true);
            AssertMatcher(m, dt003500, true);
            AssertMatcher(m, dt004500, true);
            AssertMatcher(m, dt005500, true);
        }
Esempio n. 10
0
        public void EveryLastThursday()
        {
            var m = new DateTimeMatcher("****.**.**-L4-00:00");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 0, 0, 0);

            for (var i = 0; i < 366 * 10; i++)
            {
                var dt             = first.AddDays(i);
                var isLastThursday = dt.DayOfWeek == DayOfWeek.Thursday && dt.AddDays(7).Month != dt.Month;
                if (isLastThursday)
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Esempio n. 11
0
        public void ThirdThursday()
        {
            var m = new DateTimeMatcher("****.**.**-34-21:05");

            Assert.IsTrue(m.Valid);
            var first = new DateTime(2018, 1, 1, 21, 5, 0);

            for (var i = 0; i < 380; i++)
            {
                var dt = first.AddDays(i);
                var isThirdThursday = dt.DayOfWeek == DayOfWeek.Thursday && dt.GetNumberOfDayOfWeek() == 3;
                if (isThirdThursday)
                {
                    Assert.IsTrue(m.IsMatch(dt));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(30)));
                    Assert.IsFalse(m.IsMatch(dt.AddSeconds(630)));
                }
                else
                {
                    // other
                    Assert.IsFalse(m.IsMatch(dt));
                }
            }
        }
Esempio n. 12
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Initialize the dialog, based on the old matcher, if any, and if recognized.
        /// </summary>
        /// <param name="matcher1">The matcher1.</param>
        /// ------------------------------------------------------------------------------------
        public void SetDlgValues(IMatcher matcher1)
        {
            CheckDisposed();

            DateTimeMatcher matcher = matcher1 as DateTimeMatcher;

            if (matcher == null)
            {
                return;
            }
            switch (matcher.MatchType)
            {
            case DateTimeMatcher.DateMatchType.On:
                m_typeCombo.SelectedIndex = 0;
                break;

            case DateTimeMatcher.DateMatchType.NotRange:
                m_typeCombo.SelectedIndex = 1;
                break;

            case DateTimeMatcher.DateMatchType.Before:
                m_typeCombo.SelectedIndex = 2;
                break;

            case DateTimeMatcher.DateMatchType.After:
                m_typeCombo.SelectedIndex = 3;
                break;

            case DateTimeMatcher.DateMatchType.Range:
                m_typeCombo.SelectedIndex = 4;
                break;
            }

            SelectionStart = matcher.Start;
            SelectionEnd   = matcher.End;
        }
Esempio n. 13
0
 private static void AssertMatcher(DateTimeMatcher matcher, DateTime dt, bool expect)
 {
     Assert.AreEqual(expect, matcher.IsMatch(dt), matcher.Pattern + " / " + dt.ToString());
 }