public async Task <int> CreateAsync( string name, DateTime startTime, DateTime endTime, bool privateTraining, string notes, ICollection <string> trainersIds, ICollection <string> exercisesIds, ICollection <string> clientsIds) { var workout = new Workout { Name = name, StartTime = startTime, EndTime = endTime, PrivateTraining = privateTraining, Notes = notes, }; await this.workoutsRepository.AddAsync(workout); await this.workoutsRepository.SaveChangesAsync(); foreach (var trainerId in trainersIds) { var trainer = await this.userManager.FindByIdAsync(trainerId); var tworkout = new TrainerWorkout { Trainer = trainer, TrainerId = trainerId, TWorkout = workout, WorkoutId = workout.Id, }; workout.Trainers.Add(tworkout); trainer.TrainerWorkouts.Add(tworkout); } foreach (var exerciseId in exercisesIds) { var exercise = this.exercisesService.FindByID(exerciseId); var we = new WorkoutExercise { Exercise = exercise, ExerciseId = exercise.Id, Workout = workout, WorkoutId = workout.Id, }; workout.Exercises.Add(we); exercise.Workouts.Add(we); } foreach (var clientId in clientsIds) { var client = await this.userManager.FindByIdAsync(clientId); var cworkout = new ClientWorkout { Client = client, ClientId = clientId, CWorkout = workout, WorkoutId = workout.Id, }; workout.Clients.Add(cworkout); client.ClientWorkouts.Add(cworkout); } await this.workoutsRepository.SaveChangesAsync(); return(workout.Id); }
public ActionResult <ClientWorkout> Put(int id, [FromBody] ClientWorkout updateClientWorkout) { var postedClientWorkout = _Repository.UpdateClientWorkout(id, updateClientWorkout, _logger); return(Ok(postedClientWorkout)); }