From ac769e656b122ff569c3f1534701b71e00fed586 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 27 Oct 2020 19:21:35 +0800 Subject: Split front and back end. --- BackEnd/Timeline/Services/DatabaseBackupService.cs | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 BackEnd/Timeline/Services/DatabaseBackupService.cs (limited to 'BackEnd/Timeline/Services/DatabaseBackupService.cs') diff --git a/BackEnd/Timeline/Services/DatabaseBackupService.cs b/BackEnd/Timeline/Services/DatabaseBackupService.cs new file mode 100644 index 00000000..a76b2a0d --- /dev/null +++ b/BackEnd/Timeline/Services/DatabaseBackupService.cs @@ -0,0 +1,35 @@ +using System.Globalization; +using System.IO; + +namespace Timeline.Services +{ + public interface IDatabaseBackupService + { + void BackupNow(); + } + + public class DatabaseBackupService : IDatabaseBackupService + { + private readonly IPathProvider _pathProvider; + private readonly IClock _clock; + + public DatabaseBackupService(IPathProvider pathProvider, IClock clock) + { + _pathProvider = pathProvider; + _clock = clock; + } + + public void BackupNow() + { + var databasePath = _pathProvider.GetDatabaseFilePath(); + if (File.Exists(databasePath)) + { + var backupDirPath = _pathProvider.GetDatabaseBackupDirectory(); + Directory.CreateDirectory(backupDirPath); + var fileName = _clock.GetCurrentTime().ToString("yyyy-MM-ddTHH-mm-ss", CultureInfo.InvariantCulture); + var path = Path.Combine(backupDirPath, fileName); + File.Copy(databasePath, path); + } + } + } +} -- cgit v1.2.3