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