public void ModelValidation_RepetitionTempo_CannotBeNull()
        {
            // Arrange
            var postDto = new PostActivationDto {
                RepetitionTempo = null
            };

            // Act
            var modelValidation = AspHelpers.ValidateDtoProperty(postDto, nameof(postDto.RepetitionTempo));

            // Assert
            modelValidation.IsValid.ShouldBeFalse();
            modelValidation.Results.First().ErrorMessage.ShouldContain($"{nameof(postDto.RepetitionTempo)} field is required");
        }
        public void ModelValidation_MuscleId_CannotBeNullOrWhitespace(string muscleId)
        {
            // Arrange
            var postDto = new PostActivationDto {
                MuscleId = muscleId
            };

            // Act
            var modelValidation = AspHelpers.ValidateDtoProperty(postDto, nameof(postDto.MuscleId));

            // Assert
            modelValidation.IsValid.ShouldBeFalse();
            modelValidation.Results.First().ErrorMessage.ShouldContain($"{nameof(postDto.MuscleId)} field is required");
        }
        public async Task <IActionResult> PostOneAsync([FromBody] PostActivationDto activationDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values));
            }

            var postedActivation = await _activationsService.CreateOneAsync(activationDto.ToActivation());

            if (postedActivation == null)
            {
                return(BadRequest());
            }

            return(StatusCode(201, postedActivation));
        }
        public void ModelValidation_RangeOfMotion_MustBeBetween0And100(double value)
        {
            // Arrange
            var postDto = new PostActivationDto {
                RangeOfMotion = value
            };

            // Act
            var modelValidation = AspHelpers.ValidateDtoProperty(postDto, nameof(postDto.RangeOfMotion));

            // Assert
            modelValidation.IsValid.ShouldBeFalse();
            modelValidation.Results.Count.ShouldBe(1);
            modelValidation.Results.First().ErrorMessage.ShouldContain("0");
            modelValidation.Results.First().ErrorMessage.ShouldContain("100");
        }
        public async Task <IActionResult> PostActivationToExercise(string exerciseId, [FromBody] PostActivationDto activationDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.Values));
            }

            var postedActivation = await _exercisesService.CreateActivation(exerciseId, activationDto.ToActivation());

            if (postedActivation == null)
            {
                return(NotFound());
            }

            return(StatusCode(201, postedActivation));
        }