Пример #1
0
        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());
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        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();
        }