/// <summary> /// Aktualisiert einen Auftrag oder legt einen Auftrag neu an. /// </summary> /// <param name="job">Der neue oder veränderte Auftrag.</param> /// <param name="scheduleIdentifier">Die eindeutige Kennung der veränderten Aufzeichnung.</param> public void Update( VCRJob job, Guid? scheduleIdentifier ) { // Report if (job != null) Tools.ExtendedLogging( "Updating Job {0}", job.UniqueID ); // Load default profile name job.SetProfile(); // Validate job.Validate( scheduleIdentifier ); // Cleanup schedules job.CleanupExceptions(); // Remove from archive - if job has been recovered job.Delete( ArchiveDirectory ); // Try to store to disk - actually this is inside the lock because the directory virtually is part of our map lock (m_Jobs) if (job.Save( JobDirectory ).GetValueOrDefault()) m_Jobs[job.UniqueID.Value] = job; else throw new ArgumentException( string.Format( Properties.Resources.SaveJobFailed, job.UniqueID ), "job" ); }