示例#1
0
        public async Task <RoutineDto> CreateRoutine(RoutineDto routineDto)
        {
            var exercises = routineDto.Exercises;
            var validIds  = (await _exerciseRepository.GetValidIds()).ToList();

            foreach (var exercise in exercises)
            {
                if (!validIds.Contains(exercise.Id))
                {
                    _logger.LogInformation("Error while creating a Routine");
                    throw new ExerciseNotFoundException();
                }
            }
            var result = await _routineRepository.CreateRoutine(routineDto);

            return(result);
        }
        public IActionResult Post(RoutineCreateDto routineCreateDto)
        {
            var userIdString = User.FindFirst(ClaimTypes.Name)?.Value;
            var userId       = int.Parse(userIdString);

            routineCreateDto.UserId = userId;

            var validationResult = _routineCreateDtoValidator.Validate(routineCreateDto);

            if (!validationResult.IsValid)
            {
                return(BadRequest(ValidationHelpers.ConvertValidationResult(validationResult)));
            }

            var routine = _routineRepository.CreateRoutine(routineCreateDto);

            return(Created($"api/routine/{routine.Id}", routine));
        }