public static bool EvalMonthlyTrigger(this IMonthlyScheduledTask task, ITimeProvider timeProvider)
        {
            var monthsapart = ((timeProvider.Time.Year - task.StartTime.Year) * 12) + timeProvider.Time.Month - task.StartTime.Month;

            if (task.RepeatIntervalInMonths <= 0 || monthsapart <= -1 || monthsapart % task.RepeatIntervalInMonths != 0)
            {
                return(false);
            }

            var dayOfMonth  = timeProvider.Time.Day;
            var daysOfMonth = (DaysOfMonth)(1 << (dayOfMonth - 1));

            return(task.DaysOfMonthToActivate.HasFlag(daysOfMonth) && TimeHelpers.AreTimesEqualToTheSecond(timeProvider.Time, task.StartTime));
        }
 public MonthlyTaskUserControl(IMonthlyScheduledTask monthlyScheduledTask)
 {
     InitializeComponent();
     MonthlyScheduledTask = monthlyScheduledTask;
 }
 public MonthlyTaskUserControl(IMonthlyScheduledTask monthlyScheduledTask)
 {
     InitializeComponent();
     MonthlyScheduledTask = monthlyScheduledTask;
 }