Пример #1
0
        public string CreateExercise(IProvideRandomNumbers randomNumberGenerator)
        {
            var numbers = _numberDefinitions.Select(n => n.GetNumber(randomNumberGenerator)).ToArray();
            var invalidConstraintCount = 0;
            while (!ConstraintsAreValid(numbers))
            {
                if (invalidConstraintCount > 100)
                    throw new CannotSatisfyConstraintException("Het is onmogelijk om getallen te maken waarvoor de regel klopt (in 100 pogingen)");

                numbers = _numberDefinitions.Select(n => n.GetNumber(randomNumberGenerator)).ToArray();
                invalidConstraintCount++;
            }

            return string.Format(
                _exerciseTemplate.Template,
                numbers.Select(n => (object)n).ToArray()
                );
        }
Пример #2
0
        public decimal GetNumber(IProvideRandomNumbers randomNumberGenerator)
        {
            var generatedNumber = randomNumberGenerator.GetRandomNumber(MinValue, MaxValue);

            return generatedNumber / (decimal)Math.Pow(10, Decimals);
        }
 public CreateExerciseSheetHandler(IRepository repository, IGetExerciseHandler getExerciseHandler, IProvideRandomNumbers randomNumberGenerator)
 {
     _repository = repository;
     _getExerciseHandler = getExerciseHandler;
     _randomNumberGenerator = randomNumberGenerator;
 }