namespace SanctionsSearch.Worker.Persistence; class EfUnitOfWork( DbContext context, ILoggerFactory loggerFactory ) : IUnitOfWork, IAsyncDisposable, IDisposable { 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(); } public void Dispose() { _context.Dispose(); } }