Esempio n. 1
0
        /// <summary>
        /// Generate a cron expression that runs at a given day every x amount of months
        /// Example : A cron that will run at 13:00 on the 30th every 3 months
        /// </summary>
        /// <param name="runTime">Time that the cron will run</param>
        /// <param name="dayofTheMonthToRunOn">The day that the cron will run on (1-31)</param>
        /// <param name="monthsToRunOn">Time between months that the cron will run on (1-12)</param>
        /// <returns>Cron expression</returns>
        public static string GenerateMonthlyCronExpression(TimeSpan runTime, int dayofTheMonthToRunOn, int monthsToRunOn)
        {
            CronGenerationValueValidator.ValidateDayOfMonthToRunOn(dayofTheMonthToRunOn);
            CronGenerationValueValidator.ValidateMonthsToRunAfter(monthsToRunOn);

            return($"{ParseCronTimeSpan(runTime)} {dayofTheMonthToRunOn} 1/{monthsToRunOn} ? *");
        }
Esempio n. 2
0
        private static string CreateYearlyValue(TimeSpan runTime, int dayOfMonthToRunOn, int monthToRunOn)
        {
            CronGenerationValueValidator.ValidateDayOfMonthToRunOn(dayOfMonthToRunOn);
            CronGenerationValueValidator.ValidateMonthToRunOn(monthToRunOn);
            CronGenerationValueValidator.ValidateDayOfMonthForFebrary(monthToRunOn, dayOfMonthToRunOn);
            CronGenerationValueValidator.ValidateDayOfMonthForShorterMonth(monthToRunOn, dayOfMonthToRunOn);

            return($"{ParseCronTimeSpan(runTime)} {dayOfMonthToRunOn} {monthToRunOn} ? *");
        }
Esempio n. 3
0
        private static string CreateTimeOfMonthValue(TimeSpan runTime, TimeOfMonthToRun timeOfMonthToRun, int dayToRun, int amountOfMonthsToRunAfter)
        {
            CronGenerationValueValidator.ValidateMonthsToRunAfter(amountOfMonthsToRunAfter);

            if (timeOfMonthToRun != TimeOfMonthToRun.Last)
            {
                var day = ParseDayOfWeek(dayToRun);
                var timeOfMonuthToRunIntValue = (int)timeOfMonthToRun;
                return($"{ParseCronTimeSpan(runTime)} ? 1/{amountOfMonthsToRunAfter} {day}#{timeOfMonuthToRunIntValue} *");
            }
            else
            {
                var day = dayToRun + 1;
                return($"{ParseCronTimeSpan(runTime)} ? 1/{amountOfMonthsToRunAfter} {day}L *");
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Generate a cron expression that runs every x hour(s)
        /// Example : A cron that will run every 2 hours
        /// </summary>
        /// <param name="hours">Amount of hours to wait before running</param>
        /// <returns>Cron expression</returns>
        public static string GenerateHourlyCronExpression(int hours)
        {
            CronGenerationValueValidator.ValidateHours(hours);

            return($"0 0 0/{hours} 1/1 * ? *");
        }
Esempio n. 5
0
        private static string CreateMultiDayValue(TimeSpan runTime, List <int> days)
        {
            CronGenerationValueValidator.ValidateDays(days);

            return($"{ParseCronTimeSpan(runTime)} ? * {ParseMultiDaysList(days)} *");
        }
Esempio n. 6
0
        /// <summary>
        /// Generate a cron expression that runs every x minutes(s)
        /// Example : A cron that will run every 5 minutes
        /// </summary>
        /// <param name="minutes">Amount of minutes to wait before running</param>
        /// <returns>Cron expression</returns>
        public static string GenerateMinutesCronExpression(int minutes)
        {
            CronGenerationValueValidator.ValidateMinutes(minutes);

            return($"0 0/{minutes} * 1/1 * ? *");
        }