namespace HrynCo.DAL.Abstract; using System.Threading; using System.Threading.Tasks; public interface IUnitOfWork { Task BeginTransactionAsync(CancellationToken cancellationToken = default); ITransaction? GetCurrentTransaction(); Task ExecuteInTransactionAsync(Func action); Task ExecuteInTransactionAsync(Func> action); }