Example #1
0
        /// <summary>
        /// Get the next triggerded date
        /// </summary>
        /// <returns>DateTime contening the next trigger</returns>
        public DateTime GetNextTriggered()
        {
            DateTime dateTriggered = DateTime.MinValue;

            for (int i = 0; i < _recurrences.Count; i++)
            {
                DateTime   dateRecurrence = DateTime.MinValue;
                Recurrence r = (Recurrence)_recurrences[i];

                switch (r.Type)
                {
                case TypeRecurrence.daily:
                {
                    dateRecurrence = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, r.Hour.Hour, r.Hour.Minute, r.Hour.Second, r.Hour.Millisecond);

                    if (dateRecurrence < DateTime.Now)
                    {
                        dateRecurrence = dateRecurrence.AddDays(1);
                    }
                } break;

                case TypeRecurrence.selectedDay:
                {
                    dateRecurrence = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, r.Hour.Hour, r.Hour.Minute, r.Hour.Second, r.Hour.Millisecond);
                    DayOfWeek dayParameter;

                    switch (r.Parameter)
                    {
                    case "Sunday":
                    {
                        dayParameter = DayOfWeek.Sunday;
                    } break;

                    case "Monday":
                    {
                        dayParameter = DayOfWeek.Monday;
                    } break;

                    case "Tuesday":
                    {
                        dayParameter = DayOfWeek.Thursday;
                    } break;

                    case "Wednesday":
                    {
                        dayParameter = DayOfWeek.Wednesday;
                    } break;

                    case "Thursday":
                    {
                        dayParameter = DayOfWeek.Thursday;
                    } break;

                    case "Friday":
                    {
                        dayParameter = DayOfWeek.Friday;
                    } break;

                    case "Saturday":
                    {
                        dayParameter = DayOfWeek.Saturday;
                    } break;

                    default:
                    {
                        dayParameter = DayOfWeek.Monday;
                    } break;
                    }

                    if (dayParameter > DateTime.Now.DayOfWeek)
                    {
                        dateRecurrence = dateRecurrence.AddDays(dayParameter - DateTime.Now.DayOfWeek);
                    }

                    else if (dayParameter < DateTime.Now.DayOfWeek)
                    {
                        dateRecurrence = dateRecurrence.AddDays(7 - (DateTime.Now.DayOfWeek - dayParameter));
                    }

                    else
                    {
                        if (DateTime.Now > dateRecurrence)
                        {
                            dateRecurrence = dateRecurrence.AddDays(7);
                        }
                    }
                } break;

                case TypeRecurrence.selectedDate:
                {
                    dateRecurrence = new DateTime(DateTime.Now.Year, DateTime.Now.Month, Int32.Parse(r.Parameter), r.Hour.Hour, r.Hour.Minute, r.Hour.Second, r.Hour.Millisecond);

                    if (DateTime.Now.Day > Int32.Parse(r.Parameter))
                    {
                        dateRecurrence = dateRecurrence.AddMonths(1);
                    }

                    else if (DateTime.Now.Day == Int32.Parse(r.Parameter))
                    {
                        if (DateTime.Now > dateRecurrence)
                        {
                            dateRecurrence = dateRecurrence.AddMonths(1);
                        }
                    }
                } break;

                case TypeRecurrence.once:
                default:
                {
                    dateRecurrence = new DateTime(_dateStart.Year, _dateStart.Month, _dateStart.Day, r.Hour.Hour, r.Hour.Minute, r.Hour.Second, r.Hour.Millisecond);

                    if (DateTime.Now > dateRecurrence)
                    {
                        dateRecurrence = DateTime.MinValue;
                    }
                } break;
                }

                if (dateTriggered == DateTime.MinValue)
                {
                    dateTriggered = dateRecurrence;
                }

                else if (dateRecurrence != DateTime.MinValue)
                {
                    if (dateRecurrence < dateTriggered)
                    {
                        dateTriggered = dateRecurrence;
                    }
                }

                if (new DateTime(dateTriggered.Year, dateTriggered.Month, dateTriggered.Day, 0, 0, 0) > new DateTime(_dateEnd.Year, _dateEnd.Month, _dateEnd.Day, 0, 0, 0))
                {
                    dateTriggered = DateTime.MinValue;
                }
            }

            return(dateTriggered);
        }
Example #2
0
		/// <summary>
		/// Add a Recurrence object to the list of Recurrence.
		/// </summary>
		/// <param name="Recur">Recurrence to add</param>
		public void AddRecurrence(Recurrence Recur)
		{
			_recurrences.Add(Recur);
		}
Example #3
0
 /// <summary>
 /// Add a Recurrence object to the list of Recurrence.
 /// </summary>
 /// <param name="Recur">Recurrence to add</param>
 public void AddRecurrence(Recurrence Recur)
 {
     _recurrences.Add(Recur);
 }