aboutsummaryrefslogtreecommitdiff
path: root/BackEnd
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-04-23 19:26:33 +0800
committercrupest <crupest@outlook.com>2021-04-23 19:26:33 +0800
commit09bd11e0c7c5b17684515958f8cd82a31e2b5be1 (patch)
tree149ffa990e2535c4c49c5ae3d2da9b89da2b5e56 /BackEnd
parent93bf679e0f882a20c560ca0cc7211185d6cdb31a (diff)
downloadtimeline-09bd11e0c7c5b17684515958f8cd82a31e2b5be1.tar.gz
timeline-09bd11e0c7c5b17684515958f8cd82a31e2b5be1.tar.bz2
timeline-09bd11e0c7c5b17684515958f8cd82a31e2b5be1.zip
fix: Fix dependency injection bug.
Diffstat (limited to 'BackEnd')
-rw-r--r--BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs26
1 files changed, 16 insertions, 10 deletions
diff --git a/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs b/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs
index 4d54d3dc..c3d9ac4e 100644
--- a/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs
+++ b/BackEnd/Timeline/Services/DatabaseManagement/DatabaseManagementService.cs
@@ -1,5 +1,7 @@
using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
+using System;
using System.Threading;
using System.Threading.Tasks;
using Timeline.Entities;
@@ -8,22 +10,26 @@ namespace Timeline.Services.DatabaseManagement
{
public class DatabaseManagementService : IHostedService
{
- private readonly DatabaseContext _database;
- private readonly IDatabaseBackupService _backupService;
- private readonly IDatabaseCustomMigrator _customMigrator;
+ private readonly IServiceProvider _serviceProvider;
- public DatabaseManagementService(DatabaseContext database, IDatabaseBackupService backupService, IDatabaseCustomMigrator customMigrator)
+ public DatabaseManagementService(IServiceProvider serviceProvider)
{
- _database = database;
- _backupService = backupService;
- _customMigrator = customMigrator;
+ _serviceProvider = serviceProvider;
}
public async Task StartAsync(CancellationToken cancellationToken = default)
{
- await _backupService.BackupAsync(cancellationToken);
- await _database.Database.MigrateAsync(cancellationToken);
- await _customMigrator.MigrateAsync(cancellationToken);
+ using var scope = _serviceProvider.CreateScope();
+ var provider = scope.ServiceProvider;
+
+ var backupService = provider.GetRequiredService<IDatabaseBackupService>();
+ var database = provider.GetRequiredService<DatabaseContext>();
+ var customMigrator = provider.GetRequiredService<IDatabaseCustomMigrator>();
+
+
+ await backupService.BackupAsync(cancellationToken);
+ await database.Database.MigrateAsync(cancellationToken);
+ await customMigrator.MigrateAsync(cancellationToken);
}
public Task StopAsync(CancellationToken cancellationToken)