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 GetByIdAsync(Guid id, CancellationToken cancellationToken = default) { return _dbContext.Users.FirstOrDefaultAsync(x => x.Id == id, cancellationToken); } public Task GetByUserNameAsync(string userName, CancellationToken cancellationToken = default) { return _dbContext.Users.FirstOrDefaultAsync(x => x.UserName == userName, cancellationToken); } public Task 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); } }