public ExercisedWordWithResult(
     ExercisedWord exercisedWord,
     Word actualWord,
     bool isMatchedCorrectly)
 {
     ExercisedWord      = exercisedWord ?? throw new ArgumentNullException(nameof(exercisedWord));
     ActualWord         = actualWord ?? throw new ArgumentNullException(nameof(actualWord));
     IsMatchedCorrectly = isMatchedCorrectly;
 }
        private ExercisedWordWithResult GetResultForExercisedWord(
            Dictionary <string, Word> tranlsationsDictionary,
            ExercisedWord exercisedWord,
            bool shouldSuggestedTranslationBeCorrect)
        {
            var actualWord       = tranlsationsDictionary[exercisedWord.Original];
            var matchedCorrectly = !(exercisedWord.SuggestedTranslation == actualWord.Translation ^
                                     shouldSuggestedTranslationBeCorrect);

            return(new ExercisedWordWithResult(exercisedWord, actualWord, matchedCorrectly));
        }
 public ExerciseStatus(
     Guid exerciseId,
     int wordsDone,
     int wordsLeft,
     bool isFinished,
     ExercisedWord currentWord,
     IEnumerable <ExercisedWord> wordsConsideredCorrect,
     IEnumerable <ExercisedWord> wordsConsideredIncorrect)
 {
     WordsDone                = wordsDone;
     WordsLeft                = wordsLeft;
     IsFinished               = isFinished;
     CurrentWord              = currentWord;
     WordsConsideredCorrect   = wordsConsideredCorrect;
     WordsConsideredIncorrect = wordsConsideredIncorrect;
     ExerciseId               = exerciseId;
 }