Files
imprink/src/Imprink.Infrastructure/UnitOfWork.cs
lumijiez a695e1cce6 Jostka
2025-06-09 00:45:42 +03:00

39 lines
1.4 KiB
C#

using Imprink.Application;
using Imprink.Domain.Repositories;
using Imprink.Infrastructure.Database;
using Microsoft.Identity.Client;
namespace Imprink.Infrastructure;
public class UnitOfWork(
ApplicationDbContext context,
IProductRepository productRepository,
IProductVariantRepository productVariantRepository,
ICategoryRepository categoryRepository,
IUserRepository userRepository) : IUnitOfWork
{
public IProductRepository ProductRepository => productRepository;
public IProductVariantRepository ProductVariantRepository => productVariantRepository;
public ICategoryRepository CategoryRepository => categoryRepository;
public IUserRepository UserRepository => userRepository;
public async Task SaveAsync(CancellationToken cancellationToken = default)
{
await context.SaveChangesAsync(cancellationToken);
}
public Task BeginTransactionAsync(CancellationToken cancellationToken = default)
{
return context.Database.BeginTransactionAsync(cancellationToken);
}
public async Task CommitTransactionAsync(CancellationToken cancellationToken = default)
{
await context.Database.CommitTransactionAsync(cancellationToken);
}
public async Task RollbackTransactionAsync(CancellationToken cancellationToken = default)
{
await context.Database.RollbackTransactionAsync(cancellationToken);
}
}