From 6e067a28d8527726a2a17045bef0f0e3d3430ed5 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 23 Apr 2021 17:28:18 +0800 Subject: refactor: Refactor a lot. --- .../DatabaseManagementService.cs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs (limited to 'BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs') diff --git a/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs b/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs new file mode 100644 index 00000000..4d54d3dc --- /dev/null +++ b/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs @@ -0,0 +1,34 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Hosting; +using System.Threading; +using System.Threading.Tasks; +using Timeline.Entities; + +namespace Timeline.Services.DatabaseManagement +{ + public class DatabaseManagementService : IHostedService + { + private readonly DatabaseContext _database; + private readonly IDatabaseBackupService _backupService; + private readonly IDatabaseCustomMigrator _customMigrator; + + public DatabaseManagementService(DatabaseContext database, IDatabaseBackupService backupService, IDatabaseCustomMigrator customMigrator) + { + _database = database; + _backupService = backupService; + _customMigrator = customMigrator; + } + + public async Task StartAsync(CancellationToken cancellationToken = default) + { + await _backupService.BackupAsync(cancellationToken); + await _database.Database.MigrateAsync(cancellationToken); + await _customMigrator.MigrateAsync(cancellationToken); + } + + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } + } +} -- cgit v1.2.3