/// <summary> /// Enlists in a transaction. /// </summary> /// <param name="option">An enlistment option.</param> /// <param name="timeout">A transaction timeout.</param> /// <returns>The enlisted transaction.</returns> public async Task<ITransaction> Enlist(EnlistmentOption option, TimeSpan timeout) { TransactionScopeOption transactionScopeOption = EnlistmentOptionPairMapper.Instance.Map(option); return await Task.Run(() => { var transactionScope = new TransactionScope(transactionScopeOption, timeout); return new TransactionScopeTransaction(transactionScope); }); }
/// <summary> /// Enlists in a transaction. /// </summary> /// <param name="option">An enlistment option.</param> /// <param name="isolationLevel">A transaction isolation level.</param> /// <param name="timeout">A transaction timeout.</param> /// <returns>The enlisted transaction.</returns> public async Task<ITransaction> Enlist(EnlistmentOption option, IsolationLevel isolationLevel, TimeSpan timeout) { TransactionScopeOption transactionScopeOption = EnlistmentOptionPairMapper.Instance.Map(option); var transactionOptions = new TransactionOptions { IsolationLevel = IsolationLevelPairMapper.Instance.Map(isolationLevel), Timeout = timeout }; return await Task.Run(() => { var transactionScope = new TransactionScope(transactionScopeOption, transactionOptions); return new TransactionScopeTransaction(transactionScope); }); }
/// <summary> /// Enlists in a transaction that takes no action whether it is committed or rolled back. /// </summary> /// <param name="option">An enlistment option.</param> /// <param name="isolationLevel">A transaction isolation level.</param> /// <param name="timeout">A transaction timeout.</param> /// <returns>The enlisted transaction.</returns> public Task<ITransaction> Enlist(EnlistmentOption option, IsolationLevel isolationLevel, TimeSpan timeout) { return Task.FromResult<ITransaction>(new NullTransaction()); }
/// <summary> /// Enlists in a transaction that takes no action whether it is committed or rolled back. /// </summary> /// <param name="option">An enlistment option.</param> /// <returns>The enlisted transaction.</returns> public Task<ITransaction> Enlist(EnlistmentOption option) { return Task.FromResult<ITransaction>(new NullTransaction()); }