Ejemplo n.º 1
0
        /// <summary>
        /// Creates a ScheduledJobTrigger object based on a provided WTS ITrigger.
        /// </summary>
        /// <param name="iTrigger">ITrigger</param>
        /// <returns>ScheduledJobTrigger</returns>
        private ScheduledJobTrigger CreateJobTrigger(
            ITrigger iTrigger)
        {
            ScheduledJobTrigger rtnJobTrigger = null;

            if (iTrigger is IBootTrigger)
            {
                IBootTrigger iBootTrigger = (IBootTrigger)iTrigger;
                rtnJobTrigger = ScheduledJobTrigger.CreateAtStartupTrigger(
                    ParseWTSTime(iBootTrigger.Delay),
                    ConvertStringId(iBootTrigger.Id),
                    iBootTrigger.Enabled);
            }
            else if (iTrigger is ILogonTrigger)
            {
                ILogonTrigger iLogonTrigger = (ILogonTrigger)iTrigger;
                rtnJobTrigger = ScheduledJobTrigger.CreateAtLogOnTrigger(
                    iLogonTrigger.UserId,
                    ParseWTSTime(iLogonTrigger.Delay),
                    ConvertStringId(iLogonTrigger.Id),
                    iLogonTrigger.Enabled);
            }
            else if (iTrigger is ITimeTrigger)
            {
                ITimeTrigger iTimeTrigger = (ITimeTrigger)iTrigger;
                TimeSpan     repInterval  = ParseWTSTime(iTimeTrigger.Repetition.Interval);
                TimeSpan     repDuration  = (repInterval != TimeSpan.Zero && iTimeTrigger.Repetition.StopAtDurationEnd == false) ?
                                            TimeSpan.MaxValue : ParseWTSTime(iTimeTrigger.Repetition.Duration);
                rtnJobTrigger = ScheduledJobTrigger.CreateOnceTrigger(
                    DateTime.Parse(iTimeTrigger.StartBoundary, CultureInfo.InvariantCulture),
                    ParseWTSTime(iTimeTrigger.RandomDelay),
                    repInterval,
                    repDuration,
                    ConvertStringId(iTimeTrigger.Id),
                    iTimeTrigger.Enabled);
            }
            else if (iTrigger is IDailyTrigger)
            {
                IDailyTrigger iDailyTrigger = (IDailyTrigger)iTrigger;
                rtnJobTrigger = ScheduledJobTrigger.CreateDailyTrigger(
                    DateTime.Parse(iDailyTrigger.StartBoundary, CultureInfo.InvariantCulture),
                    (Int32)iDailyTrigger.DaysInterval,
                    ParseWTSTime(iDailyTrigger.RandomDelay),
                    ConvertStringId(iDailyTrigger.Id),
                    iDailyTrigger.Enabled);
            }
            else if (iTrigger is IWeeklyTrigger)
            {
                IWeeklyTrigger iWeeklyTrigger = (IWeeklyTrigger)iTrigger;
                rtnJobTrigger = ScheduledJobTrigger.CreateWeeklyTrigger(
                    DateTime.Parse(iWeeklyTrigger.StartBoundary, CultureInfo.InvariantCulture),
                    (Int32)iWeeklyTrigger.WeeksInterval,
                    ConvertMaskToDaysOfWeekArray(iWeeklyTrigger.DaysOfWeek),
                    ParseWTSTime(iWeeklyTrigger.RandomDelay),
                    ConvertStringId(iWeeklyTrigger.Id),
                    iWeeklyTrigger.Enabled);
            }

            return(rtnJobTrigger);
        }
Ejemplo n.º 2
0
        private ScheduledJobTrigger CreateJobTrigger(ITrigger iTrigger)
        {
            TimeSpan            maxValue;
            ScheduledJobTrigger scheduledJobTrigger = null;

            if (iTrigger as IBootTrigger == null)
            {
                if (iTrigger as ILogonTrigger == null)
                {
                    if (iTrigger as ITimeTrigger == null)
                    {
                        if (iTrigger as IDailyTrigger == null)
                        {
                            if (iTrigger as IWeeklyTrigger != null)
                            {
                                IWeeklyTrigger variable = (IWeeklyTrigger)iTrigger;
                                scheduledJobTrigger = ScheduledJobTrigger.CreateWeeklyTrigger(DateTime.Parse(variable.StartBoundary, CultureInfo.InvariantCulture), variable.WeeksInterval, this.ConvertMaskToDaysOfWeekArray(variable.DaysOfWeek), this.ParseWTSTime(variable.RandomDelay), this.ConvertStringId(variable.Id), variable.Enabled);
                            }
                        }
                        else
                        {
                            IDailyTrigger variable1 = (IDailyTrigger)iTrigger;
                            scheduledJobTrigger = ScheduledJobTrigger.CreateDailyTrigger(DateTime.Parse(variable1.StartBoundary, CultureInfo.InvariantCulture), variable1.DaysInterval, this.ParseWTSTime(variable1.RandomDelay), this.ConvertStringId(variable1.Id), variable1.Enabled);
                        }
                    }
                    else
                    {
                        ITimeTrigger variable2 = (ITimeTrigger)iTrigger;
                        TimeSpan     timeSpan  = this.ParseWTSTime(variable2.Repetition.Interval);
                        if (!(timeSpan != TimeSpan.Zero) || variable2.Repetition.StopAtDurationEnd)
                        {
                            maxValue = this.ParseWTSTime(variable2.Repetition.Duration);
                        }
                        else
                        {
                            maxValue = TimeSpan.MaxValue;
                        }
                        TimeSpan timeSpan1 = maxValue;
                        scheduledJobTrigger = ScheduledJobTrigger.CreateOnceTrigger(DateTime.Parse(variable2.StartBoundary, CultureInfo.InvariantCulture), this.ParseWTSTime(variable2.RandomDelay), new TimeSpan?(timeSpan), new TimeSpan?(timeSpan1), this.ConvertStringId(variable2.Id), variable2.Enabled);
                    }
                }
                else
                {
                    ILogonTrigger variable3 = (ILogonTrigger)iTrigger;
                    scheduledJobTrigger = ScheduledJobTrigger.CreateAtLogOnTrigger(variable3.UserId, this.ParseWTSTime(variable3.Delay), this.ConvertStringId(variable3.Id), variable3.Enabled);
                }
            }
            else
            {
                IBootTrigger variable4 = (IBootTrigger)iTrigger;
                scheduledJobTrigger = ScheduledJobTrigger.CreateAtStartupTrigger(this.ParseWTSTime(variable4.Delay), this.ConvertStringId(variable4.Id), variable4.Enabled);
            }
            return(scheduledJobTrigger);
        }
Ejemplo n.º 3
0
        private void CreateOnceTrigger()
        {
            TimeSpan?repInterval = null;
            TimeSpan?repDuration = null;

            if (MyInvocation.BoundParameters.ContainsKey(nameof(RepetitionInterval)) || MyInvocation.BoundParameters.ContainsKey(nameof(RepetitionDuration)) ||
                MyInvocation.BoundParameters.ContainsKey(nameof(RepeatIndefinitely)))
            {
                if (MyInvocation.BoundParameters.ContainsKey(nameof(RepeatIndefinitely)))
                {
                    if (MyInvocation.BoundParameters.ContainsKey(nameof(RepetitionDuration)))
                    {
                        throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepeatIndefinitelyParams);
                    }

                    if (!MyInvocation.BoundParameters.ContainsKey(nameof(RepetitionInterval)))
                    {
                        throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionRepeatParams);
                    }

                    _repDuration = TimeSpan.MaxValue;
                }
                else if (!MyInvocation.BoundParameters.ContainsKey(nameof(RepetitionInterval)) || !MyInvocation.BoundParameters.ContainsKey(nameof(RepetitionDuration)))
                {
                    throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionParams);
                }

                if (_repInterval < TimeSpan.Zero || _repDuration < TimeSpan.Zero)
                {
                    throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionParamValues);
                }

                if (_repInterval < TimeSpan.FromMinutes(1))
                {
                    throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionIntervalValue);
                }

                if (_repInterval > _repDuration)
                {
                    throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionInterval);
                }

                repInterval = _repInterval;
                repDuration = _repDuration;
            }

            WriteObject(ScheduledJobTrigger.CreateOnceTrigger(_atTime, _randomDelay, repInterval, repDuration, 0, true));
        }
Ejemplo n.º 4
0
        private void CreateOnceTrigger()
        {
            TimeSpan?nullable  = null;
            TimeSpan?nullable1 = null;

            if (base.MyInvocation.BoundParameters.ContainsKey("RepetitionInterval") || base.MyInvocation.BoundParameters.ContainsKey("RepetitionDuration"))
            {
                if (!base.MyInvocation.BoundParameters.ContainsKey("RepetitionInterval") || !base.MyInvocation.BoundParameters.ContainsKey("RepetitionDuration"))
                {
                    throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionParams);
                }
                else
                {
                    if (this._repInterval < TimeSpan.Zero || this._repDuration < TimeSpan.Zero)
                    {
                        throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionParamValues);
                    }
                    else
                    {
                        if (this._repInterval >= TimeSpan.FromMinutes(1))
                        {
                            if (this._repInterval <= this._repDuration)
                            {
                                nullable  = new TimeSpan?(this._repInterval);
                                nullable1 = new TimeSpan?(this._repDuration);
                            }
                            else
                            {
                                throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionInterval);
                            }
                        }
                        else
                        {
                            throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionIntervalValue);
                        }
                    }
                }
            }
            base.WriteObject(ScheduledJobTrigger.CreateOnceTrigger(this._atTime, this._randomDelay, nullable, nullable1, 0, true));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Creates a Once job trigger with provided repetition interval and an
        /// infinite duration, and adds the trigger to the provided scheduled job
        /// definition object.
        /// </summary>
        /// <param name="definition">ScheduledJobDefinition</param>
        /// <param name="repInterval">rep interval</param>
        /// <param name="save">save definition change</param>
        internal static void AddRepetitionJobTriggerToDefinition(
            ScheduledJobDefinition definition,
            TimeSpan repInterval,
            bool save)
        {
            if (definition == null)
            {
                throw new PSArgumentNullException("definition");
            }

            TimeSpan repDuration = TimeSpan.MaxValue;

            // Validate every interval value.
            if (repInterval < TimeSpan.Zero || repDuration < TimeSpan.Zero)
            {
                throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionParamValues);
            }

            if (repInterval < TimeSpan.FromMinutes(1))
            {
                throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionIntervalValue);
            }

            if (repInterval > repDuration)
            {
                throw new PSArgumentException(ScheduledJobErrorStrings.InvalidRepetitionInterval);
            }

            // Create job trigger.
            var trigger = ScheduledJobTrigger.CreateOnceTrigger(
                DateTime.Now,
                TimeSpan.Zero,
                repInterval,
                repDuration,
                0,
                true);

            definition.AddTriggers(new ScheduledJobTrigger[] { trigger }, save);
        }