internal CronTrigger(string expression, Utils.IDateTimeProvider dateTimeProvider) {
            if (expression == null) {
                throw new ArgumentNullException("expression");
            }

            if (dateTimeProvider == null) {
                throw new ArgumentNullException("dateTimeProvider");
            }

            this.cronexpression = new Quartz.CronExpression(expression);
            this.dateTimeProvider = dateTimeProvider;
        }
        internal ScheduleTrigger(TimeSpan time, DayOfWeek[] weekdays, Utils.IDateTimeProvider dateTimeProvider) {
            if (weekdays == null) {
                throw new ArgumentNullException("weekdays");
            }

            if (dateTimeProvider == null) {
                throw new ArgumentNullException("dateTimeProvider");
            }

            _fireTime = time;
            _weekdays = new Collection<DayOfWeek>(new List<DayOfWeek>(weekdays));
            _dateTimeProvider = dateTimeProvider; 
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="FilterTrigger"/> class.
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="weekdays">The weekdays.</param>
        /// <param name="innerTrigger">The inner trigger.</param>
        /// <param name="dateTimeProvider">The date time provider.</param>
        internal FilterTrigger(TimeSpan startTime, TimeSpan endTime, DayOfWeek[] weekdays, ITrigger innerTrigger, Utils.IDateTimeProvider dateTimeProvider) {
            if (weekdays == null) {
                throw new ArgumentNullException("weekdays");
            }

            if (dateTimeProvider == null) {
                throw new ArgumentNullException("dateTimeProvider");
            }

            _startTime = startTime;
            _endTime = endTime;
            /*_weekdays = new Collection<DayOfWeek>(weekdays);*/
            _weekdays = new Collection<DayOfWeek>(new List<DayOfWeek>(weekdays));
            _innerTrigger = innerTrigger;
            _dateTimeProvider = dateTimeProvider;
        }
 internal IntervalTrigger(double intervalSeconds, Utils.IDateTimeProvider dateTimeProvider) {
     this._intervalSeconds = intervalSeconds;
     this._dateTimeProvider = dateTimeProvider;
 }