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

38 lines
1.3 KiB
C#

using GymLogAI.Application.Interfaces;
using GymLogAI.Core.Entities;
using GymLogAI.Core.Enums;
using Microsoft.EntityFrameworkCore;
namespace GymLogAI.Persistence.Repositories;
public sealed class TelegramMessageRepository(AppDbContext dbContext) : ITelegramMessageRepository
{
public async Task<TelegramMessage> AddAsync(TelegramMessage message, CancellationToken cancellationToken)
{
dbContext.TelegramMessages.Add(message);
await dbContext.SaveChangesAsync(cancellationToken);
return message;
}
public async Task<TelegramMessage?> GetByIdAsync(Guid id, CancellationToken cancellationToken)
{
return await dbContext.TelegramMessages.SingleOrDefaultAsync(x => x.Id == id, cancellationToken);
}
public async Task<IReadOnlyCollection<TelegramMessage>> GetPendingAsync(int take, CancellationToken cancellationToken)
{
return await dbContext.TelegramMessages
.Where(x => x.ParsingStatus == ParsingStatus.Pending)
.OrderBy(x => x.ImportedAtUtc)
.Take(take)
.ToListAsync(cancellationToken);
}
public async Task<TelegramMessage> UpdateAsync(TelegramMessage message, CancellationToken cancellationToken)
{
dbContext.TelegramMessages.Update(message);
await dbContext.SaveChangesAsync(cancellationToken);
return message;
}
}