public GameService(ILetterPairGenerator letterPairGenerator, ITimer timer, IScoreCalculator scoreCalculator)
        {
            _letterPairGenerator = letterPairGenerator ?? throw new ArgumentNullException(nameof(letterPairGenerator));
            _timer           = timer ?? throw new ArgumentNullException(nameof(timer));
            _scoreCalculator = scoreCalculator ?? throw new ArgumentException(nameof(scoreCalculator));

            SubscribeToCustomEvents();
        }
        public IGameService Create()
        {
            ILetterPairGenerator letterPairGenerator = _letterPairGeneratorFactory.Create();
            ITimer timerService = _timerFactory.Create();


            return(new GameService(letterPairGenerator, timerService, /*TODO*/ new ScoreCalculator(new DatamuseWordLookup())));
        }
 public MultipleInternalLetterPairGenerator(ILetterPairGenerator generator)
 {
     _generator = generator ?? throw new ArgumentException(nameof(generator));
 }