public Event(EEventType type, ERepeat repeat, DateTimeOffset time, Range?owner) { Type = type; Repeat = repeat; Time = time; Owner = owner; }
// Notes: // - Ranges are [Beg, End), so if beg == end, then the range is never active but two events are added to the schedule. public Range(string name, ERepeat repeat, DateTimeOffset beg, DateTimeOffset end) { if (beg > end) { throw new ArgumentException("Range times must describe a positive time interval"); } Name = name; Beg = new Event(EEventType.Beg, repeat, beg, this); End = new Event(EEventType.End, repeat, end, this); }