4f573da374
- 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>
24 lines
726 B
C#
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();
|
|
}
|