Exemplo n.º 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;
        }
Exemplo n.º 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));
            }
        }