コード例 #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));
            }
        }