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))); }
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!")); } }
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(); }