using System.Transactions;
namespace Abp.Domain.Uow
{
///
/// Unit of work manager.
/// Used to begin and control a unit of work.
///
public interface IUnitOfWorkManager
{
///
/// Gets currently active unit of work (or null if not exists).
///
IActiveUnitOfWork Current { get; }
///
/// Begins a new unit of work.
///
/// A handle to be able to complete the unit of work
IUnitOfWorkCompleteHandle Begin();
///
/// Begins a new unit of work.
///
/// A handle to be able to complete the unit of work
IUnitOfWorkCompleteHandle Begin(TransactionScopeOption scope);
///
/// Begins a new unit of work.
///
/// A handle to be able to complete the unit of work
IUnitOfWorkCompleteHandle Begin(UnitOfWorkOptions options);
}
}