Files
GymLogAI/GymLogAI.Persistence/Repositories/UserRepository.cs
T
2026-04-19 13:12:04 +03:00

33 lines
1.1 KiB
C#

using GymLogAI.Application.Interfaces;
using GymLogAI.Core.Entities;
using Microsoft.EntityFrameworkCore;
namespace GymLogAI.Persistence.Repositories;
public sealed class UserRepository(AppDbContext dbContext) : IUserRepository
{
public async Task<User?> GetByIdAsync(Guid id, CancellationToken cancellationToken)
{
return await dbContext.Users.SingleOrDefaultAsync(x => x.Id == id, cancellationToken);
}
public async Task<User?> GetByTelegramUserIdAsync(long telegramUserId, CancellationToken cancellationToken)
{
return await dbContext.Users.SingleOrDefaultAsync(x => x.TelegramUserId == telegramUserId, cancellationToken);
}
public async Task<User> AddAsync(User user, CancellationToken cancellationToken)
{
dbContext.Users.Add(user);
await dbContext.SaveChangesAsync(cancellationToken);
return user;
}
public async Task<User> UpdateAsync(User user, CancellationToken cancellationToken)
{
dbContext.Users.Update(user);
await dbContext.SaveChangesAsync(cancellationToken);
return user;
}
}