private void SaveTask( SchedulerTask task )
{
if ( !IsLoaded )
return;
lock ( SyncRoot ) {
if ( Map == null )
return;
lock ( BackupLock ) {
if ( BackupsEnabled &&
DateTime.UtcNow.Subtract( lastBackup ) > BackupInterval &&
( HasChangedSinceBackup || !ConfigKey.BackupOnlyWhenChanged.Enabled() ) ) {
string backupFileName = String.Format( TimedBackupFormat, Name, DateTime.Now ); // localized
SaveBackup( Path.Combine( Paths.BackupPath, backupFileName ) );
lastBackup = DateTime.UtcNow;
}
}
if ( Map.HasChangedSinceSave ) {
SaveMap();
}
if ( BlockDB.IsEnabledGlobally && BlockDB.IsEnabled ) {
BlockDB.Flush( true );
}
}
}