public async Task <IActionResult> PostExercise([FromRoute] int?userId, [FromBody] ExerciseDTO exerciseDTO) { if (userId == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } if (!await _repository.UserExists(userId)) { return(NotFound("User Doesn't Exist")); } exerciseDTO.WTUserID = userId; var exerciseEntity = Mapper.Map <Exercise>(exerciseDTO); var result = await _repository.AddExerciseForUser(userId, exerciseEntity); if (result == false) { return(BadRequest("Add Failed...")); } if (exerciseEntity.ImageBytes != null && exerciseEntity.ImageBytes.Length != 0) { var imageResult = await SaveExerciseImage(exerciseEntity); } var exerciseToReturn = Mapper.Map <ExerciseDTO>(exerciseEntity); return(CreatedAtRoute( routeName: "GetExercise", routeValues: new { userId = userId, exerciseId = exerciseToReturn.ID }, value: exerciseToReturn)); }