Removed some dead code on the interfaces. Introduced UnitOfWork to simplify repo injection.

This commit is contained in:
Joseph Milazzo 2021-01-18 13:07:48 -06:00
parent 4a2296a18a
commit 825afd83a2
23 changed files with 165 additions and 204 deletions

36
API/Data/UnitOfWork.cs Normal file
View file

@ -0,0 +1,36 @@
using System.Threading.Tasks;
using API.Entities;
using API.Interfaces;
using AutoMapper;
using Microsoft.AspNetCore.Identity;
namespace API.Data
{
public class UnitOfWork : IUnitOfWork
{
private readonly DataContext _context;
private readonly IMapper _mapper;
private readonly UserManager<AppUser> _userManager;
public UnitOfWork(DataContext context, IMapper mapper, UserManager<AppUser> userManager)
{
_context = context;
_mapper = mapper;
_userManager = userManager;
}
public ISeriesRepository SeriesRepository => new SeriesRepository(_context, _mapper);
public IUserRepository UserRepository => new UserRepository(_context, _mapper, _userManager);
public ILibraryRepository LibraryRepository => new LibraryRepository(_context, _mapper);
public async Task<bool> Complete()
{
return await _context.SaveChangesAsync() > 0;
}
public bool HasChanges()
{
return _context.ChangeTracker.HasChanges();
}
}
}