Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public ActionResult <ClientWorkout> Put(int id, [FromBody] ClientWorkout updateClientWorkout)
        {
            var postedClientWorkout = _Repository.UpdateClientWorkout(id, updateClientWorkout, _logger);

            return(Ok(postedClientWorkout));
        }