48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using MikrocopDb.Entities;
|
|
|
|
namespace MikrocopDb.Repositories;
|
|
|
|
public sealed class UserRepository : IUserRepository
|
|
{
|
|
private readonly AppDbContext _dbContext;
|
|
|
|
public UserRepository(AppDbContext dbContext)
|
|
{
|
|
_dbContext = dbContext;
|
|
}
|
|
|
|
public Task<UserEntity?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default)
|
|
{
|
|
return _dbContext.Users.FirstOrDefaultAsync(x => x.Id == id, cancellationToken);
|
|
}
|
|
|
|
public Task<UserEntity?> GetByUserNameAsync(string userName, CancellationToken cancellationToken = default)
|
|
{
|
|
return _dbContext.Users.FirstOrDefaultAsync(x => x.UserName == userName, cancellationToken);
|
|
}
|
|
|
|
public Task<UserEntity?> GetByEmailAsync(string email, CancellationToken cancellationToken = default)
|
|
{
|
|
return _dbContext.Users.FirstOrDefaultAsync(x => x.Email == email, cancellationToken);
|
|
}
|
|
|
|
public async Task AddAsync(UserEntity user, CancellationToken cancellationToken = default)
|
|
{
|
|
await _dbContext.Users.AddAsync(user, cancellationToken);
|
|
await _dbContext.SaveChangesAsync(cancellationToken);
|
|
}
|
|
|
|
public async Task UpdateAsync(UserEntity user, CancellationToken cancellationToken = default)
|
|
{
|
|
_dbContext.Users.Update(user);
|
|
await _dbContext.SaveChangesAsync(cancellationToken);
|
|
}
|
|
|
|
public async Task DeleteAsync(UserEntity user, CancellationToken cancellationToken = default)
|
|
{
|
|
_dbContext.Users.Remove(user);
|
|
await _dbContext.SaveChangesAsync(cancellationToken);
|
|
}
|
|
}
|