public async Task <IActionResult> AddExercise(ExerciseAddDto exerciseAddDto, int workoutId) { if (!await _workoutService.UserHasWorkout(User.GetUserId(), workoutId)) { return(Unauthorized("You dont own this workout")); } await _exerciseService.AddExerciseToWorkout(exerciseAddDto, workoutId); //createdatroute? create a httpget getexercises return(NoContent()); }
public async Task Add_Success_Created() { var model = new ExerciseAddDto { Name = "test name", Description = "test description" }; var postContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); var response = await _client.PostAsync(BASE_CONTROLLER_ROUTE, postContent); Assert.Equal(HttpStatusCode.Created, response.StatusCode); }
public async Task <IActionResult> AddExercise([FromBody] ExerciseAddDto dto) { if (dto == null || !ModelState.IsValid) { return(BadRequest()); } try { var entity = await _exerciseService.Add(dto.Name, dto.Description); var result = _mapper.Map <ExerciseDto>(entity); return(CreatedAtRoute(GET_EXERCISE_BY_ID_ROUTE, new { id = result.Id }, result)); } catch (EntityExistsException) { return(new StatusCodeResult((int)HttpStatusCode.Conflict)); } }
public async Task Add_AlreadyExists_Conflict() { // Seed an exercise var name = "test"; var description = "test"; var exercise = CreateExercise(name, description); // Prepare model for POST var model = new ExerciseAddDto { Name = name, Description = description }; var postContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); // POST var response = await _client.PostAsync(BASE_CONTROLLER_ROUTE, postContent); Assert.Equal(HttpStatusCode.Conflict, response.StatusCode); }
public async Task AddExerciseToWorkout(ExerciseAddDto 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) { 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(); }