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() ); }
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; }