using Dpz.Core.Public.ViewModel;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace Dpz.Core.Backup;
public class BackupService(IConfiguration configuration, ILoggerFactory loggerFactory)
: IBackupService
{
public async Task<VmBackupRecord?> BackupAsync(
string? connectionString,
Dictionary<string, string>? filter = null
)
{
var backupKey = configuration["BackupKey"] ?? throw new Exception("backup key is null");
using var backupManager = new BackupManager(connectionString, backupKey, loggerFactory);
var result = await backupManager.BackupAsync(filter);
return await UploadAsync(result);
}
public Func<BackupResult, Task<VmBackupRecord?>> UploadAsync { get; set; } =
_ =>
{
var logger = loggerFactory.CreateLogger<BackupService>();
logger.LogWarning("upload async not implemented.");
return Task.FromResult<VmBackupRecord?>(null);
};
}
评论加载中...