Exemplo n.º 1
0
 /// <summary>Ctor. </summary>
 /// <param name="operator">is the operator as text</param>
 /// <param name="day">is the day text</param>
 public CronParameter(
     CronOperatorEnum @operator,
     int?day)
 {
     Operator = @operator;
     Day      = day;
 }
Exemplo n.º 2
0
 /// <summary>Ctor. </summary>
 /// <param name="operator">is the operator as text</param>
 /// <param name="day">is the day</param>
 /// <param name="month">is the month</param>
 public CronParameter(
     CronOperatorEnum @operator,
     int?day,
     int?month)
 {
     Operator = @operator;
     Day      = day;
     Month    = month;
 }
Exemplo n.º 3
0
        private static void IncreaseAfterDayOfMonthSpecialOp(
            CronOperatorEnum @operator,
            int?day,
            int?month,
            bool week,
            DateTimeEx after)
        {
            DateChecker checker;

            if (@operator == CronOperatorEnum.LASTDAY)
            {
                if (!week)
                {
                    checker = new DateCheckerLastDayOfMonth(day, month);
                }
                else
                {
                    if (day == null)
                    {
                        checker = new DateCheckerLastDayOfWeek(month);
                    }
                    else
                    {
                        checker = new DateCheckerLastSpecificDayWeek(day.Value, month);
                    }
                }
            }
            else if (@operator == CronOperatorEnum.LASTWEEKDAY)
            {
                checker = new DateCheckerLastWeekday(day, month);
            }
            else
            {
                checker = new DateCheckerMonthWeekday(day, month);
            }

            int dayCount = 0;

            while (!checker.Fits(after))
            {
                after.AddUsingField(DateTimeFieldEnum.DAY_OF_MONTH, 1);
                dayCount++;
                if (dayCount > 10000)
                {
                    throw new ArgumentException("Invalid crontab expression: failed to find match day");
                }
            }
        }
Exemplo n.º 4
0
        /// <summary>Returns the syntax string for the operator. </summary>
        /// <returns>syntax string</returns>
        public static string GetSyntax(this CronOperatorEnum value)
        {
            switch (value)
            {
            case CronOperatorEnum.LASTDAY:
                return("last");

            case CronOperatorEnum.WEEKDAY:
                return("weekday");

            case CronOperatorEnum.LASTWEEKDAY:
                return("lastweekday");
            }

            throw new ArgumentException();
        }
Exemplo n.º 5
0
 /// <summary>Ctor. </summary>
 /// <param name="cronOperator">type of cron parameter</param>
 public ExprNumberSetCronParam(CronOperatorEnum cronOperator)
 {
     _cronOperator = cronOperator;
 }