/// <summary>
            /// Erzeugt eine neue Verwaltung.
            /// </summary>
            /// <param name="definition">Die Definition der Aufzeichnung.</param>
            /// <param name="exceptions">Alle Ausnahmen zur Aufzeichnung.</param>
            /// <exception cref="ArgumentNullException">Es wurde keine Aufzeichnung angegeben.</exception>
            public _Schedule( IScheduleDefinition definition, IEnumerable<PlanException> exceptions = null )
            {
                // Validate
                if (definition == null)
                    throw new ArgumentNullException( "plan" );

                // Remember
                Definition = definition;

                // Default
                if (exceptions == null)
                    exceptions = Enumerable.Empty<PlanException>();

                // Validate exceptions
                foreach (var exception in exceptions)
                    if (exception.ExceptionDate.TimeOfDay != TimeSpan.Zero)
                        throw new ArgumentException( string.Format( Properties.SchedulerResources.Exception_NotAPureDate, exception.ExceptionDate ), "exceptions" );

                // Cross validate
                foreach (var exception in exceptions.GroupBy( e => e.ExceptionDate ))
                    if (exception.Count() > 1)
                        throw new ArgumentException( string.Format( Properties.SchedulerResources.Exception_DuplicateDate, exception.Key ), "exceptions" );

                // Order plan
                m_Exceptions = exceptions.ToDictionary( e => e.ExceptionDate );
            }
Esempio n. 2
0
 /// <summary>
 /// Erzeugt eine neue Beschreibung.
 /// </summary>
 /// <param name="definition">Die ursprüngliche Beschreibung der Aufzeichnung.</param>
 /// <param name="resource">Das zu verwendende Gerät.</param>
 /// <param name="time">Die tatsächliche Ausführungszeit.</param>
 /// <param name="late">Gesetzt, wenn die Ausführung verspätet beginnt.</param>
 internal ScheduleInfo(IScheduleDefinition definition, IScheduleResource resource, PlannedTime time, bool late)
 {
     // Remember
     Definition = definition;
     Resource   = resource;
     StartsLate = late;
     Time       = time;
 }
Esempio n. 3
0
 /// <summary>
 /// Erzeugt eine neue Beschreibung.
 /// </summary>
 /// <param name="definition">Die ursprüngliche Beschreibung der Aufzeichnung.</param>
 /// <param name="resource">Das zu verwendende Gerät.</param>
 /// <param name="time">Die tatsächliche Ausführungszeit.</param>
 /// <param name="late">Gesetzt, wenn die Ausführung verspätet beginnt.</param>
 internal ScheduleInfo( IScheduleDefinition definition, IScheduleResource resource, PlannedTime time, bool late )
 {
     // Remember
     Definition = definition;
     Resource = resource;
     StartsLate = late;
     Time = time;
 }
            /// <summary>
            /// Erzeugt eine neue Verwaltung.
            /// </summary>
            /// <param name="definition">Die zugehörige Beschreibung der Aufgabenzeiten.</param>
            /// <param name="minTime">Der Zeitpunkt, an dem die Aufgabe das nächste Mal ausgeführt werden soll.</param>
            public _Task(IScheduleDefinition definition, DateTime minTime)
                : base(definition)
            {
                // Start at once
                Reset(minTime);

                // Move to the first
                MoveNext();
            }
            /// <summary>
            /// Erzeugt eine neue Verwaltung.
            /// </summary>
            /// <param name="definition">Die zugehörige Beschreibung der Aufgabenzeiten.</param>
            /// <param name="minTime">Der Zeitpunkt, an dem die Aufgabe das nächste Mal ausgeführt werden soll.</param>
            public _Task( IScheduleDefinition definition, DateTime minTime )
                : base( definition )
            {
                // Start at once
                Reset( minTime );

                // Move to the first
                MoveNext();
            }
Esempio n. 6
0
            /// <summary>
            /// Erzeugt eine neue Verwaltung.
            /// </summary>
            /// <param name="definition">Die Definition der Aufzeichnung.</param>
            /// <param name="exceptions">Alle Ausnahmen zur Aufzeichnung.</param>
            /// <exception cref="ArgumentNullException">Es wurde keine Aufzeichnung angegeben.</exception>
            public _Schedule(IScheduleDefinition definition, IEnumerable <PlanException> exceptions = null)
            {
                // Validate
                if (definition == null)
                {
                    throw new ArgumentNullException("plan");
                }

                // Remember
                Definition = definition;

                // Default
                if (exceptions == null)
                {
                    exceptions = Enumerable.Empty <PlanException>();
                }

                // Validate exceptions
                foreach (var exception in exceptions)
                {
                    if (exception.ExceptionDate.TimeOfDay != TimeSpan.Zero)
                    {
                        throw new ArgumentException(string.Format(Properties.SchedulerResources.Exception_NotAPureDate, exception.ExceptionDate), "exceptions");
                    }
                }

                // Cross validate
                foreach (var exception in exceptions.GroupBy(e => e.ExceptionDate))
                {
                    if (exception.Count() > 1)
                    {
                        throw new ArgumentException(string.Format(Properties.SchedulerResources.Exception_DuplicateDate, exception.Key), "exceptions");
                    }
                }

                // Order plan
                m_Exceptions = exceptions.ToDictionary(e => e.ExceptionDate);
            }
 /// <summary>
 /// Meldet, dass eine Aufzeichnung nicht ausgeführt werden kann.
 /// </summary>
 /// <param name="item">Die nicht ausgeführte Aufzeichnung.</param>
 void IRecordingPlannerSite.Discard(IScheduleDefinition item)
 {
     // Report
     VCRServer.Log(LoggingLevel.Schedules, "Could not record '{0}'", item.Name);
 }
Esempio n. 8
0
 /// <summary>
 /// Meldet, dass eine Aufzeichnung nicht ausgeführt wird.
 /// </summary>
 /// <param name="item">Die verborgene Aufzeichnung.</param>
 public void Discard(IScheduleDefinition item)
 {
     // Report
     Debug.WriteLine(string.Format("{0} discardced {1}", m_planTime.ToLocalTime(), item.Name));
 }
Esempio n. 9
0
 /// <summary>
 /// Erzeugt eine neue Testumgebung.
 /// </summary>
 public TaskSpecs()
 {
     // Finish
     Task = new _TaskMock( TaskDevice );
 }
 /// <summary>
 /// Meldet, dass eine Aufzeichnung nicht ausgeführt wird.
 /// </summary>
 /// <param name="item">Die verborgene Aufzeichnung.</param>
 public void Discard( IScheduleDefinition item )
 {
     // Report
     Debug.WriteLine( string.Format( "{0} discardced {1}", m_planTime.ToLocalTime(), item.Name ) );
 }
Esempio n. 11
0
 /// <summary>
 /// Erzeugt eine neue Testumgebung.
 /// </summary>
 public TaskSpecs()
 {
     // Finish
     Task = new _TaskMock(TaskDevice);
 }