/// <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); }
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); }
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)); }
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)); }
/// <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); }