Files
hrynco-notification-service/HrynCo.NotificationService.DAL.EF/Core/EfTransactionAdapter.cs
T
Anatolii Grynchuk 4f573da374 feat: add repository layer with IUnitOfWork and fixed EF base
- ITransaction, IUnitOfWork in DAL.Abstract
- EfTransactionAdapter, EfUnitOfWork<TDbContext>, NotificationUnitOfWork in DAL.EF
- NotificationEfRepository<TEntity>: async-only base, fixed Exists (AnyAsync),
  fixed batch Add (AddRangeAsync), single SaveChangesAsync per operation
- TemplateRepository, ProviderRepository, ProviderUsageRepository
- ProviderUsageRepository.IncrementAsync uses atomic PostgreSQL upsert
- ProviderRepository deserializes settings polymorphically via ProviderType discriminator

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-01 23:18:41 +03:00

24 lines
726 B
C#

using HrynCo.NotificationService.DAL.Abstract;
using Microsoft.EntityFrameworkCore.Storage;
namespace HrynCo.NotificationService.DAL.EF.Core;
internal sealed class EfTransactionAdapter : ITransaction
{
private readonly IDbContextTransaction _transaction;
internal EfTransactionAdapter(IDbContextTransaction transaction)
{
_transaction = transaction;
}
public Task CommitAsync(CancellationToken cancellationToken = default) =>
_transaction.CommitAsync(cancellationToken);
public Task RollbackAsync(CancellationToken cancellationToken = default) =>
_transaction.RollbackAsync(cancellationToken);
public ValueTask DisposeAsync() =>
_transaction.DisposeAsync();
}