diff --git a/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs b/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs
index e7157c0f..046db634 100644
--- a/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs
+++ b/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs
@@ -67,7 +67,7 @@ namespace AyaNova.Biz
//If backup time has changed then reset last backup as well as it might block from taking effect
if (putObject.BackupTime.Hour != dbObject.BackupTime.Hour && putObject.BackupTime.Minute != dbObject.BackupTime.Minute)
{
- putObject.LastBackup = DateTime.MinValue;
+ ServerGlobalOpsSettingsCache.LastBackup = DateTime.MinValue;
}
CopyObject.Copy(putObject, dbObject, "Id");
ct.Entry(dbObject).OriginalValues["Concurrency"] = putObject.Concurrency;
diff --git a/server/AyaNova/generator/CoreJobBackup.cs b/server/AyaNova/generator/CoreJobBackup.cs
index 413b9f8e..f7f2577d 100644
--- a/server/AyaNova/generator/CoreJobBackup.cs
+++ b/server/AyaNova/generator/CoreJobBackup.cs
@@ -33,7 +33,7 @@ namespace AyaNova.Biz
//what time should we backup today?
DateTime todayBackupTime = new DateTime(utcNow.Year, utcNow.Month, utcNow.Day, ServerGlobalOpsSettingsCache.Backup.BackupTime.Hour, ServerGlobalOpsSettingsCache.Backup.BackupTime.Minute, 0, DateTimeKind.Utc);//first start with NOW
- //Are we there yet?
+ //Are we there yet?
if (utcNow < todayBackupTime)
{
log.LogTrace("Not past backup time yet"); return;//nope
@@ -43,7 +43,7 @@ namespace AyaNova.Biz
//Has last backup run more than 24 hours ago?
if (ServerGlobalOpsSettingsCache.Backup.LastBackup > utcNow.AddHours(-24))
{
- log.LogTrace("Hasn't been 24 hours since last backup yet"); return;//nope//nope, so we have already run today's backup
+ log.LogTrace("Hasn't been 24 hours since last backup yet"); return;//nope, so we have already run today's backup
}
//Ok, we're into backup time and it's been more than 24 hours since it last ran so let's do this...
}
diff --git a/server/AyaNova/models/GlobalOpsBackupSettings.cs b/server/AyaNova/models/GlobalOpsBackupSettings.cs
index 53fe0471..6781d5c6 100644
--- a/server/AyaNova/models/GlobalOpsBackupSettings.cs
+++ b/server/AyaNova/models/GlobalOpsBackupSettings.cs
@@ -8,7 +8,7 @@ namespace AyaNova.Models
public uint Concurrency { get; set; }
public DateTime BackupTime { get; set; }
- public DateTime LastBackup { get; set; }
+
public int BackupSetsToKeep { get; set; }
public bool BackupAttachments { get; set; }
@@ -16,7 +16,7 @@ namespace AyaNova.Models
{
Id = 1;//always 1
BackupTime = new DateTime(2020, 5, 19, 23, 59, 0, DateTimeKind.Local).ToUniversalTime();//date doesn't matter it only uses hour
- LastBackup = DateTime.MinValue;
+
BackupSetsToKeep = 3;
}
diff --git a/server/AyaNova/util/FileUtil.cs b/server/AyaNova/util/FileUtil.cs
index 7027316f..e5948e9d 100644
--- a/server/AyaNova/util/FileUtil.cs
+++ b/server/AyaNova/util/FileUtil.cs
@@ -119,6 +119,27 @@ namespace AyaNova.Util
}
+ ///
+ /// Get date of newest backup file or minvalue if not found
+ ///
+ ///
+ ///
+ internal static DateTime MostRecentBackupFileDate()
+ {
+ DateTime LastBackup = DateTime.MinValue;
+ var BackupPath = UtilityFilesFolder;
+ foreach (string file in Directory.EnumerateFiles(UtilityFilesFolder, "*.backup"))
+ {
+ var ThisFileTime = File.GetCreationTimeUtc(Path.Combine(BackupPath, file));
+ if (ThisFileTime > LastBackup)
+ {
+ LastBackup = ThisFileTime;
+ }
+ }
+ return LastBackup;
+ }
+
+
///
/// Confirm if a file exists in the utility folder
///
diff --git a/server/AyaNova/util/ServerGlobalOpsSettingsCache.cs b/server/AyaNova/util/ServerGlobalOpsSettingsCache.cs
index 45304687..5d5fe574 100644
--- a/server/AyaNova/util/ServerGlobalOpsSettingsCache.cs
+++ b/server/AyaNova/util/ServerGlobalOpsSettingsCache.cs
@@ -13,6 +13,7 @@ namespace AyaNova.Util
{
internal static GlobalOpsBackupSettings Backup { get; set; }
+ internal static DateTime LastBackup { get; set; }
///
@@ -27,10 +28,10 @@ namespace AyaNova.Util
Backup = new GlobalOpsBackupSettings();
ct.GlobalOpsBackupSettings.Add(Backup);
ct.SaveChanges();
- }
+ }
+ LastBackup=FileUtil.MostRecentBackupFileDate();
}
-
}//eoc
}//eons
\ No newline at end of file