39 lines
1.4 KiB
C#
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);
|
|
}
|
|
} |