Files
messengerapi/code/MessengerApi/Models/Scoped/UnitOfWork.cs
T

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);
}
}
}