This commit is contained in:
2020-05-23 15:49:52 +00:00
parent a1e6acc5b4
commit b2a7b8e0b9
4 changed files with 15 additions and 25 deletions

View File

@@ -40,14 +40,11 @@ namespace AyaNova.Biz
//first try to fetch from db
var ret = await ct.GlobalOpsBackupSettings.SingleOrDefaultAsync(m => m.Id == 1);
if (logTheGetEvent && ret != null)
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, 1, BizType, AyaEvent.Retrieved), ct);
//not in db then get the default
//expected to exists because it's created on boot if not present
if (ret == null)
throw new System.Exception("GlobalOpsSettingsBiz::GetAsync -> Global OPS settings object not found in database!!");
ret.LastBackup=ServerGlobalOpsSettingsCache.Backup.LastBackup;
throw new System.Exception("GlobalOpsBackupSettings::GetAsync -> Backup settings object not found in database!!");
return ret;
}
@@ -62,13 +59,11 @@ namespace AyaNova.Biz
{
var dbObject = await ct.GlobalOpsBackupSettings.FirstOrDefaultAsync(m => m.Id == 1);
if (dbObject == null)
throw new System.Exception("GlobalOpsSettingsBiz::PutAsync -> Global settings object not found in database!!");
throw new System.Exception("GlobalOpsBackupSettings::PutAsync -> Global settings object not found in database!!");
//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;
}
var ResetLastBackup = (putObject.BackupTime.Hour != dbObject.BackupTime.Hour || putObject.BackupTime.Minute != dbObject.BackupTime.Minute);
CopyObject.Copy(putObject, dbObject, "Id");
ct.Entry(dbObject).OriginalValues["Concurrency"] = putObject.Concurrency;
Validate(dbObject);
@@ -87,7 +82,12 @@ namespace AyaNova.Biz
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, 1, BizType, AyaEvent.Modified), ct);
//Update the static copy for the server
todo:this ServerGlobalOpsSettingsCache.Backup = dbObject;
ServerGlobalOpsSettingsCache.Backup = dbObject;
if (ResetLastBackup)
{
ServerGlobalOpsSettingsCache.NextBackup = DateTime.MinValue;
ServerGlobalOpsSettingsCache.SetNextBackup();
}
return dbObject;
}

View File

@@ -111,14 +111,7 @@ namespace AyaNova.Biz
//v.next - COPY TO ONLINE STORAGE
//***************
if (!OnDemand)
{
//Update last backup
var biz = GlobalOpsBackupSettingsBiz.GetBiz(ct);
var OpSet = await biz.GetAsync(false);
await biz.PutAsync(OpSet);
ServerGlobalOpsSettingsCache.Backup.LastBackup = utcNow;
}
log.LogDebug("Backup completed");
}
catch (Exception ex)

View File

@@ -11,8 +11,6 @@ namespace AyaNova.Models
public DateTime BackupTime { get; set; }
public int BackupSetsToKeep { get; set; }
public bool BackupAttachments { get; set; }
[NotMapped]
public DateTime LastBackup { get; set; }
public GlobalOpsBackupSettings()
{

View File

@@ -36,7 +36,6 @@ namespace AyaNova.Util
internal static void SetNextBackup()
{
//If backup at 6pm and come here need to check if should add day
DateTime utcNow = DateTime.UtcNow;
//Has last backup run more than 24 hours ago?
if (NextBackup < utcNow.AddHours(-24))