diff --git a/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs b/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs index f9265ba8..61e5bdcb 100644 --- a/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs +++ b/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs @@ -30,7 +30,6 @@ public abstract class ChangeLogRepositoryAbstract : ICh var result = 0; if (dtos.Any()) { - using var transaction = await db.Database.BeginTransactionAsync(token); var entities = dtos.Select(Convert); var creation = DateTimeOffset.UtcNow; var dbSet = db.Set(); @@ -47,7 +46,6 @@ public abstract class ChangeLogRepositoryAbstract : ICh } result += await SaveChangesWithExceptionHandling(token); - await transaction.CommitAsync(token); } return result; } @@ -104,8 +102,17 @@ public abstract class ChangeLogRepositoryAbstract : ICh } result += await SaveChangesWithExceptionHandling(token); - await transaction.CommitAsync(token); - return result; + + try + { + await transaction.CommitAsync(token); + return result; + } + catch + { + await transaction.RollbackAsync(token); + throw; + } } public async Task UpdateOrInsertRange(int idUser, IEnumerable dtos, CancellationToken token) @@ -148,8 +155,16 @@ public abstract class ChangeLogRepositoryAbstract : ICh using var transaction = await db.Database.BeginTransactionAsync(token); result += await Clear(idUser, request, token); result += await InsertRange(idUser, dtos, token); - await transaction.CommitAsync(token); - return result; + try + { + await transaction.CommitAsync(token); + return result; + } + catch + { + await transaction.RollbackAsync(token); + throw; + } } public async Task DeleteRange(int idUser, IEnumerable ids, CancellationToken token)