33 lines
1005 B
C#
33 lines
1005 B
C#
using MessengerApi.Contracts.Factories;
|
|
using MessengerApi.Contracts.Models.Scoped;
|
|
using MessengerApi.Db;
|
|
using MessengerApi.Db.Contracts.Repositories;
|
|
using MessengerApi.Db.Repositories;
|
|
|
|
namespace MessengerApi.Models.Scoped
|
|
{
|
|
public class UnitOfWork : IUnitOfWork
|
|
{
|
|
private MessengerDbContext context;
|
|
|
|
public IUserRepository Users { get; }
|
|
|
|
public IUserRouteRepository UserRoutes { get; }
|
|
|
|
public IMessageRepository Messages { get; }
|
|
|
|
public UnitOfWork(
|
|
IDbContextFactory dbContextFactory)
|
|
{
|
|
this.context = dbContextFactory.CreateDbContext();
|
|
this.Users = new UserRepository(this.context.Users);
|
|
this.UserRoutes = new UserRouteRepository(this.context.UserRoutes);
|
|
this.Messages = new MessageRepository(this.context.Messages);
|
|
}
|
|
|
|
public Task SaveChanges(CancellationToken ct = default)
|
|
{
|
|
return this.context.SaveChangesAsync(ct);
|
|
}
|
|
}
|
|
} |