public void guessLetter(GuessLetter command) { if (this.GameOver) { throw new DomainException( $"[{this.gameId.ToString()}] Failed to apply GuessLetter command! {this.gameEndReason}"); } // letter guessed and all letter guessed here if (this.word.Contains(command.Letter) && this.hasAllLettersGuessed(command.Letter)) { this.Record(new LetterGuessed(command.Letter)); this.Record(new GameWon("All letters guessed")); } else if (this.word.Contains(command.Letter)) { this.Record(new LetterGuessed(command.Letter)); } else { this.Record(new LetterNotGuessed(command.Letter)); if ((this.triesRemaining - 1) < 0) { this.Record(new GameLost("No tries remaining")); } } }
public async Task <GuessLetter> CreateGuessLetter(GuessWord guessWord, string guessLetter) { var newGuessLetter = new GuessLetter() { GuessWord = guessWord, GuessWordId = guessWord.Id, Letter = guessLetter }; await _repositoryGuessLetter.Save(newGuessLetter); return(newGuessLetter); }