blob: 4d54d3dc40c77f1a19594a7cafbbf8336d8e8b83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
}
}
}
|