namespace SanctionsSearch.Worker.Persistence; class EfUnitOfWork(DbContext context, ILoggerFactory loggerFactory) : IUnitOfWork, IAsyncDisposable { private readonly DbContext _context = context; public ISdnRepository Sdns { get; } = new SdnRepository(context, loggerFactory.CreateLogger()); public IAddressRepository Addresses { get; } = new AddressRepository(context, loggerFactory.CreateLogger()); public IAliasRepository Aliases { get; } = new AliasRepository(context, loggerFactory.CreateLogger()); public ICommentRepository Comments { get; } = new CommentRepository(context, loggerFactory.CreateLogger()); public async Task SaveChangesAsync() { await _context.SaveChangesAsync(); } public async ValueTask DisposeAsync() { await _context.DisposeAsync(); } }