public async Task <IActionResult> RemoveTrainingDayFromTrainingPlan([FromBody] TrainingPlanDayForm data) { try { if (!ModelState.IsValid) { return(BadRequest()); } var trainingPlan = await _context.TrainingPlans.SingleOrDefaultAsync(p => p.Id == data.TrainingPlanId); if (trainingPlan == null) { return(NotFound(data.TrainingPlanId)); } var trainingDay = await _context.TrainingDays.SingleOrDefaultAsync(t => t.Id == data.Day.Id); if (trainingDay == null) { return(NotFound(data.Day)); } trainingPlan.Days.Remove(trainingDay); await _context.SaveChangesAsync(); return(Ok(trainingPlan)); } catch (Exception e) { return(StatusCode(500)); } }
public async Task <IActionResult> AddTrainingDayToTrainingPlan([FromBody] TrainingPlanDayForm data) { try { if (!ModelState.IsValid) { return(BadRequest()); } var trainingPlan = await _context.TrainingPlans.SingleOrDefaultAsync(p => p.Id == data.TrainingPlanId); if (trainingPlan == null) { return(NotFound(data.TrainingPlanId)); } var trainingDay = await _context.TrainingDays.SingleOrDefaultAsync(t => t.Id == data.Day.Id); if (trainingDay == null) { if (data.Day.Id != 0) { return(NotFound(data.Day)); } var workoutDays = new List <TrainingDayWorkout>(); foreach (var workout in _context.Workouts.Where(w => data.Day.Workouts.Any(x => x.Id == w.Id))) { workoutDays.Add(new TrainingDayWorkout { TrainingDay = data.Day, TrainingDayId = data.Day.Id, Workout = workout, WorkoutId = workout.Id }); } data.Day.TrainingDayWorkouts = workoutDays; var result = _context.TrainingDays.Add(data.Day); trainingDay = result.Entity; } trainingPlan.Days.Add(trainingDay); await _context.SaveChangesAsync(); return(Ok(trainingPlan)); } catch (Exception e) { return(StatusCode(500)); } }