Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ijob"></param>
        /// <param name="element"></param>
        /// <param name="options"></param>
        public Job(Type ijob, IJobItem element, Dictionary <string, string> options)
        {
            _JobType = ijob;

            this._Enabled                  = element.Enabled;
            this._EnableShutDown           = element.EnableShutDown;
            this._Name                     = element.Name;
            this.Interval                  = element.Period;
            this._ExecuteOnOwnThread       = element.ExecuteOnOwnThread;
            this._FirstRunAtInitialization = element.FirstRunAtInitialization;
            this._ExecuteDaily             = element.ExecuteDaily;
            this.UsePreciseTimer           = element.UsePreciseTimer;
            this.PreciseTimerCallbackMode  = element.PreciseTimerCallbackMode;

            if (this._ExecuteDaily)
            {
                if (TimeZoneUtility.HasTimeZone(element.DailyLocalizedExecutionTimeZoneName))
                {
                    this.DailyLocalizedExecutionTimeZoneInfo = TimeZoneUtility.GetTimeZoneInfo(element.DailyLocalizedExecutionTimeZoneName);
                    this.DailyLocalizedExecutionTime         = element.DailyLocalizedExecutionTime;
                    this.DailyExecutionDateTimeKind          = DateTimeKind.Local;
                }
                else
                {
                    this._DailyUTCExecutionTime     = element.DailyUTCExecutionTime;
                    this.DailyExecutionDateTimeKind = DateTimeKind.Utc;
                }
            }

            this._Options = options;
        }
Пример #2
0
        public void Test_DailyExecutionTimeWithDaylightSavingAdjustment()
        {
            TimeZoneInfo timeZoneInfo = TimeZoneUtility.GetTimeZoneInfo("GMT Standard Time");

            List <DateTime> futureDates = new List <DateTime>()
            {
                new DateTime(2011, 3, 24, 23, 0, 0, DateTimeKind.Utc),
                new DateTime(2011, 3, 25, 23, 0, 0, DateTimeKind.Utc),
                new DateTime(2011, 3, 26, 23, 0, 0, DateTimeKind.Utc),
                new DateTime(2011, 3, 27, 23, 0, 0, DateTimeKind.Utc),
                new DateTime(2011, 3, 28, 23, 0, 0, DateTimeKind.Utc),
                new DateTime(2011, 3, 29, 23, 0, 0, DateTimeKind.Utc)
            };

            DateTime nowLocal = TimeZoneUtility.ConvertUTCDateToLocalizedDate(futureDates[0], timeZoneInfo).AddDays(-1);

            foreach (DateTime fd in futureDates)
            {
                Trace.WriteLine((TimeZoneUtility.ConvertUTCDateToLocalizedDate(fd, timeZoneInfo) - nowLocal).ToString() + "\n");
                nowLocal = (TimeZoneUtility.ConvertUTCDateToLocalizedDate(fd, timeZoneInfo));
            }
        }