|
|
@ -1,5 +1,6 @@ |
|
|
using System; |
|
|
using System; |
|
|
using System.Collections.Generic; |
|
|
using System.Collections.Generic; |
|
|
|
|
|
using System.Collections.Immutable; |
|
|
using System.Threading; |
|
|
using System.Threading; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
using Microsoft.Extensions.Options; |
|
|
using Microsoft.Extensions.Options; |
|
|
@ -76,7 +77,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
public virtual void SaveChanges() |
|
|
public virtual void SaveChanges() |
|
|
{ |
|
|
{ |
|
|
foreach (var databaseApi in _databaseApis.Values) |
|
|
foreach (var databaseApi in GetAllActiveDatabaseApis()) |
|
|
{ |
|
|
{ |
|
|
(databaseApi as ISupportsSavingChanges)?.SaveChanges(); |
|
|
(databaseApi as ISupportsSavingChanges)?.SaveChanges(); |
|
|
} |
|
|
} |
|
|
@ -84,7 +85,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
public virtual async Task SaveChangesAsync(CancellationToken cancellationToken = default) |
|
|
public virtual async Task SaveChangesAsync(CancellationToken cancellationToken = default) |
|
|
{ |
|
|
{ |
|
|
foreach (var databaseApi in _databaseApis.Values) |
|
|
foreach (var databaseApi in GetAllActiveDatabaseApis()) |
|
|
{ |
|
|
{ |
|
|
if (databaseApi is ISupportsSavingChanges) |
|
|
if (databaseApi is ISupportsSavingChanges) |
|
|
{ |
|
|
{ |
|
|
@ -93,6 +94,16 @@ namespace Volo.Abp.Uow |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public IReadOnlyList<IDatabaseApi> GetAllActiveDatabaseApis() |
|
|
|
|
|
{ |
|
|
|
|
|
return _databaseApis.Values.ToImmutableList(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public IReadOnlyList<ITransactionApi> GetAllActiveTransactionApis() |
|
|
|
|
|
{ |
|
|
|
|
|
return _transactionApis.Values.ToImmutableList(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public virtual void Complete() |
|
|
public virtual void Complete() |
|
|
{ |
|
|
{ |
|
|
if (_isRolledback) |
|
|
if (_isRolledback) |
|
|
@ -276,7 +287,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
private void DisposeTransactions() |
|
|
private void DisposeTransactions() |
|
|
{ |
|
|
{ |
|
|
foreach (var transactionApi in _transactionApis.Values) |
|
|
foreach (var transactionApi in GetAllActiveTransactionApis()) |
|
|
{ |
|
|
{ |
|
|
try |
|
|
try |
|
|
{ |
|
|
{ |
|
|
@ -298,7 +309,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
protected virtual void RollbackAll() |
|
|
protected virtual void RollbackAll() |
|
|
{ |
|
|
{ |
|
|
foreach (var databaseApi in _databaseApis.Values) |
|
|
foreach (var databaseApi in GetAllActiveDatabaseApis()) |
|
|
{ |
|
|
{ |
|
|
try |
|
|
try |
|
|
{ |
|
|
{ |
|
|
@ -307,7 +318,7 @@ namespace Volo.Abp.Uow |
|
|
catch { } |
|
|
catch { } |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
foreach (var transactionApi in _transactionApis.Values) |
|
|
foreach (var transactionApi in GetAllActiveTransactionApis()) |
|
|
{ |
|
|
{ |
|
|
try |
|
|
try |
|
|
{ |
|
|
{ |
|
|
@ -319,7 +330,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
protected virtual async Task RollbackAllAsync(CancellationToken cancellationToken) |
|
|
protected virtual async Task RollbackAllAsync(CancellationToken cancellationToken) |
|
|
{ |
|
|
{ |
|
|
foreach (var databaseApi in _databaseApis.Values) |
|
|
foreach (var databaseApi in GetAllActiveDatabaseApis()) |
|
|
{ |
|
|
{ |
|
|
if (databaseApi is ISupportsRollback) |
|
|
if (databaseApi is ISupportsRollback) |
|
|
{ |
|
|
{ |
|
|
@ -331,7 +342,7 @@ namespace Volo.Abp.Uow |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
foreach (var transactionApi in _transactionApis.Values) |
|
|
foreach (var transactionApi in GetAllActiveTransactionApis()) |
|
|
{ |
|
|
{ |
|
|
if (transactionApi is ISupportsRollback) |
|
|
if (transactionApi is ISupportsRollback) |
|
|
{ |
|
|
{ |
|
|
@ -346,7 +357,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
protected virtual void CommitTransactions() |
|
|
protected virtual void CommitTransactions() |
|
|
{ |
|
|
{ |
|
|
foreach (var transaction in _transactionApis.Values) |
|
|
foreach (var transaction in GetAllActiveTransactionApis()) |
|
|
{ |
|
|
{ |
|
|
transaction.Commit(); |
|
|
transaction.Commit(); |
|
|
} |
|
|
} |
|
|
@ -354,7 +365,7 @@ namespace Volo.Abp.Uow |
|
|
|
|
|
|
|
|
protected virtual async Task CommitTransactionsAsync() |
|
|
protected virtual async Task CommitTransactionsAsync() |
|
|
{ |
|
|
{ |
|
|
foreach (var transaction in _transactionApis.Values) |
|
|
foreach (var transaction in GetAllActiveTransactionApis()) |
|
|
{ |
|
|
{ |
|
|
await transaction.CommitAsync(); |
|
|
await transaction.CommitAsync(); |
|
|
} |
|
|
} |
|
|
|