Merge pull request #257 from meysamhadeli/refactor/refactor-db-context-base

refactor: Refactor db-context base
This commit is contained in:
Meysam Hadeli 2023-05-13 00:06:17 +03:30 committed by GitHub
commit ad174d1be8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 0 additions and 83 deletions

View File

@ -24,45 +24,6 @@ public abstract class AppDbContextBase : DbContext, IDbContext
{
}
public async Task BeginTransactionalAsync(CancellationToken cancellationToken = default)
{
_currentTransaction ??= await Database.BeginTransactionAsync(IsolationLevel.ReadCommitted, cancellationToken);
}
//ref: https://learn.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency#execution-strategies-and-transactions
public async Task CommitTransactionalAsync(CancellationToken cancellationToken = default)
{
try
{
await SaveChangesAsync(cancellationToken);
await _currentTransaction?.CommitAsync(cancellationToken)!;
}
catch
{
await _currentTransaction?.RollbackAsync(cancellationToken)!;
throw;
}
finally
{
_currentTransaction?.Dispose();
_currentTransaction = null;
}
}
public async Task RollbackTransactionAsync(CancellationToken cancellationToken = default)
{
try
{
await _currentTransaction?.RollbackAsync(cancellationToken)!;
}
finally
{
_currentTransaction?.Dispose();
_currentTransaction = null;
}
}
//ref: https://learn.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency#execution-strategies-and-transactions
public Task ExecuteTransactionalAsync(CancellationToken cancellationToken = default)
{

View File

@ -7,9 +7,6 @@ public interface IDbContext
{
DbSet<TEntity> Set<TEntity>() where TEntity : class;
IReadOnlyList<IDomainEvent> GetDomainEvents();
public Task BeginTransactionalAsync(CancellationToken cancellationToken = default);
public Task CommitTransactionalAsync(CancellationToken cancellationToken = default);
public Task RollbackTransactionAsync(CancellationToken cancellationToken = default);
Task ExecuteTransactionalAsync(CancellationToken cancellationToken = default);
Task<int> SaveChangesAsync(CancellationToken cancellationToken = default);
}

View File

@ -9,8 +9,6 @@ using Xunit;
namespace Integration.Test.Flight.Features;
using global::Flight.Flights.Features.CreatingFlight.V1;
public class CreateFlightTests : FlightIntegrationTestBase
{
public CreateFlightTests(

View File

@ -34,45 +34,6 @@ public sealed class IdentityContext : IdentityDbContext<User, Role, Guid,
builder.ToSnakeCaseTables();
}
public async Task BeginTransactionalAsync(CancellationToken cancellationToken = default)
{
_currentTransaction ??= await Database.BeginTransactionAsync(IsolationLevel.ReadCommitted, cancellationToken);
}
//ref: https://learn.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency#execution-strategies-and-transactions
public async Task CommitTransactionalAsync(CancellationToken cancellationToken = default)
{
try
{
await SaveChangesAsync(cancellationToken);
await _currentTransaction?.CommitAsync(cancellationToken)!;
}
catch
{
await _currentTransaction?.RollbackAsync(cancellationToken)!;
throw;
}
finally
{
_currentTransaction?.Dispose();
_currentTransaction = null;
}
}
public async Task RollbackTransactionAsync(CancellationToken cancellationToken = default)
{
try
{
await _currentTransaction?.RollbackAsync(cancellationToken)!;
}
finally
{
_currentTransaction?.Dispose();
_currentTransaction = null;
}
}
//ref: https://learn.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency#execution-strategies-and-transactions
public Task ExecuteTransactionalAsync(CancellationToken cancellationToken = default)
{