/// <summary> /// Ctor using start DateTime for when this Scheduler becomes active /// </summary> /// <param name="start">the starting DateTime</param> /// <param name="interval">How often to check the scheduled items</param> /// <param name="duration">How long will this Scheduler be active</param> public Orchestrator(string name, DateTime start, TimeSpan interval, TimeSpan duration, IOrchestratorRepository <T> repository, IEquationSolver solver = null) { StartDateTime = start; Interval = interval; EndDateTime = DateTime.Now + duration; Name = name; Repository = repository; if (solver != null) { Solver = solver; } }
/// <summary> /// Ctor for defining interval and name of orchestrator /// </summary> /// <param name="name">Name of the Orchestrator</param> /// <param name="interval">the interval to use for schedule items</param> /// <param name="solver">the equation solver to use for orchestrating schedule items</param> public Orchestrator(string name, TimeSpan interval, IOrchestratorRepository <T> repository, IEquationSolver solver = null) : this(name, interval, TimeSpan.FromDays(365 * 10), repository, solver) { }
/// <summary> /// Ctor using DateTime.Now as starting DateTime /// </summary> /// <param name="interval">Timespan interval of execution on eligible ScheduleItems</param> /// <param name="duration">How long for this scheduler to remain active</param> public Orchestrator(string name, TimeSpan interval, TimeSpan duration, IOrchestratorRepository <T> repository, IEquationSolver solver = null) : this(name, DateTime.Now, interval, duration, repository, solver) { }
/// <summary> /// Minimal Ctor /// </summary> /// <param name="name">Name of Orchestrator</param> /// <param name="solver">the equation solver to use for orchestrating schedule items</param> public Orchestrator(string name, IOrchestratorRepository <T> repository, IEquationSolver solver = null) : this(name, TimeSpan.FromSeconds(1), repository, solver) { }