classlib/ExpenseTracker.Persistence/MongoDb/MongoDbUnitOfWork.cs
2024-08-07 21:12:02 +03:00

48 lines
1.2 KiB
C#

using ExpenseTracker.Application.Common.Interfaces;
using ExpenseTracker.Application.Common.Interfaces.Repositories;
namespace ExpenseTracker.Persistence.MongoDb;
public class MongoDbUnitOfWork : IUnitOfWork
{
private MongoDbContext _dbContext;
public MongoDbUnitOfWork(
MongoDbContext dbContext,
IAccountRepository accountRepository,
ITransactionRepository transactionRepository)
{
_dbContext = dbContext;
AccountRepository = accountRepository;
TransactionRepository = transactionRepository;
}
public IAccountRepository AccountRepository { get; init; }
public ITransactionRepository TransactionRepository { get; init; }
public int Save()
{
return _dbContext.SaveAsync(CancellationToken.None).Result;
}
public async Task<int> SaveAsync(CancellationToken cancellationToken)
{
return await _dbContext.SaveAsync(cancellationToken);
}
public void Dispose()
{
Dispose(disposing: true);
GC.SuppressFinalize(this);
}
public void Dispose(bool disposing)
{
if (disposing)
{
_dbContext.Dispose();
}
}
}