28 lines
939 B
C#
28 lines
939 B
C#
using GymLogAI.Application.Interfaces;
|
|
using GymLogAI.Core.Entities;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace GymLogAI.Persistence.Repositories;
|
|
|
|
public sealed class ExerciseRepository(AppDbContext dbContext) : IExerciseRepository
|
|
{
|
|
public async Task<Exercise?> GetByNameAsync(string name, CancellationToken cancellationToken)
|
|
{
|
|
return await dbContext.Exercises.SingleOrDefaultAsync(x => x.Name == name, cancellationToken);
|
|
}
|
|
|
|
public async Task<Exercise> AddAsync(Exercise exercise, CancellationToken cancellationToken)
|
|
{
|
|
dbContext.Exercises.Add(exercise);
|
|
await dbContext.SaveChangesAsync(cancellationToken);
|
|
return exercise;
|
|
}
|
|
|
|
public async Task<Exercise> UpdateAsync(Exercise exercise, CancellationToken cancellationToken)
|
|
{
|
|
dbContext.Exercises.Update(exercise);
|
|
await dbContext.SaveChangesAsync(cancellationToken);
|
|
return exercise;
|
|
}
|
|
}
|