public async Task <IActionResult> AddExercise(AddExerciseRequest addExerciseRequest, int workoutId)
        {
            addExerciseRequest.AppUserId = User.GetUserId();
            await _ownedAuthService.OwnsAsync <Workout>(workoutId, addExerciseRequest.AppUserId);

            await _exerciseService.AddExerciseToWorkoutAsync(addExerciseRequest, workoutId);

            return(CreatedAtRoute(nameof(GetExercises), new { workoutId }, new { workoutId }));
        }
        public IHttpActionResult Create(AddExerciseRequest exerciseRequest)
        {
            if (exerciseRequest == null || !ModelState.IsValid)
            {
                return(ResponseMessage(CreateCustomResponseMessage(HttpStatusCode.BadRequest)));
            }
            var result = _exerciseService.Add(exerciseRequest);

            return(ResponseMessage(CreateCustomResponseMessage(result)));
        }
Beispiel #3
0
 public ServiceResponse <ExerciseResponse> Add(AddExerciseRequest exerciseRequest)
 {
     using (DiaryContext db = new DiaryContext())
     {
         var exerciseEquipment = db.ExerciseEquipment.FirstOrDefault(x => x.Id == exerciseRequest.ExerciseEquipmentId);
         if (exerciseEquipment == null)
         {
             return(new ServiceResponse <ExerciseResponse>(null, HttpStatusCode.NotFound, "Unable to find the equipment!"));
         }
         var exercise = new Exercise
         {
             Name              = exerciseRequest.Name,
             Description       = exerciseRequest.Description,
             ExerciseEquipment = exerciseEquipment,
             BodyPart          = exerciseRequest.BodyPart
         };
         Exercise _exercise = db.Exercises.Add(exercise);
         db.SaveChanges();
         return(new ServiceResponse <ExerciseResponse>(new ExerciseResponse(_exercise), HttpStatusCode.OK, "Exercise added succesfully!"));
     }
 }
Beispiel #4
0
        public async Task AddExerciseToWorkoutAsync(AddExerciseRequest exerciseAddDto, int workoutId)
        {
            var exercise = await _exerciseRepo.GetExerciseByNameAsync(exerciseAddDto.Name);

            var workout = await _workoutRepo.GetWorkoutByIdAsync(workoutId);

            var workoutExercise = _mapper.Map <WorkoutExercise>(exerciseAddDto);

            //make a new exercise if it doesnt already exist
            if (exercise == null)
            {
                _logger.LogInformation($"Creating a new exercise with the name:{exerciseAddDto.Name}");
                exercise = new Exercise {
                    Name = exerciseAddDto.Name
                };
                await _exerciseRepo.AddExerciseAsync(exercise);
            }

            //add the exercise to the workout
            workoutExercise.Exercise = exercise;
            workout.Exercises.Add(workoutExercise);

            await _unitOfWork.SaveAllAsync();
        }