/
Extrap
/
Network_technologies_Project
Обзор
Документация
Войти
/
Extrap
/
Network_technologies_Project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Project/Repositories/WorkoutRepository.cs
72 строки
2 KB
Extrap
Решил трабл с отправкой тренировки
20 дек 2025, 18:48
20 дек 2025, 18:48
77f5498
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using Project.Data; using Project.Interfaces; using Project.Models; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Project.Repositories { public class WorkoutRepository : IWorkoutRepository { private readonly AppDbContext _context; public WorkoutRepository(AppDbContext context) { _context = context; } public async Task<Workout> CreateAsync(Workout workout) { _context.Workouts.Add(workout); await _context.SaveChangesAsync(); return workout; } public async Task<Workout> GetByIdAsync(Guid id, Guid userId) { var workout = await _context.Workouts .FirstOrDefaultAsync(w => w.Id == id && w.UserId == userId); if (workout == null) throw new KeyNotFoundException("Workout not found or access denied"); return workout; } public async Task<List<Workout>> GetByUserAsync(Guid userId) { return await _context.Workouts .Where(w => w.UserId == userId) .OrderByDescending(w => w.StartTime) .ToListAsync(); } public async Task<Workout> UpdateAsync(Workout workout, Guid userId) { var existingWorkout = await GetByIdAsync(workout.Id, userId); // Обновляем только изменяемые поля existingWorkout.StartTime = workout.StartTime; existingWorkout.DurationSeconds = workout.DurationSeconds; existingWorkout.Type = workout.Type; existingWorkout.DistanceKm = workout.DistanceKm; existingWorkout.AvgHeartRate = workout.AvgHeartRate; existingWorkout.MaxHeartRate = workout.MaxHeartRate; existingWorkout.Calories = workout.Calories; existingWorkout.Notes = workout.Notes; await _context.SaveChangesAsync(); return existingWorkout; } public async Task DeleteAsync(Guid id, Guid userId) { var workout = await GetByIdAsync(id, userId); _context.Workouts.Remove(workout); await _context.SaveChangesAsync(); } } }