using System.Data; using InServiceQue.Core.Models; namespace InServiceQue.Core.Repositories; public interface ITaskRepository: IDisposable { void Insert(QueueTask task); Task InsertAsync(QueueTask task); IDbTransaction StartTransaction(); Task StartTransactionAsync(); void CommitTransaction(IDbTransaction tx); Task CommitTransactionAsync(IDbTransaction tx); void RollbackTransaction(IDbTransaction tx); Task RollbackTransactionAsync(IDbTransaction tx); QueueTask? GetNextTask(IDbTransaction tx, string? taskType = null); Task GetNextTaskAsync(IDbTransaction tx, string? taskType = null); void SaveTask(QueueTask task, IDbTransaction tx); Task SaveTaskAsync(QueueTask task, IDbTransaction tx); }