public IActionResult CheckAntwort([FromForm] CurrentChallengeViewModel currentChallenge) { if (currentChallenge is null) { throw new ArgumentNullException(nameof(currentChallenge)); } if (currentChallenge.Solution == currentChallenge.UserAntwort) { return(RedirectToAction(nameof(LoadLevel), new { levelNumber = currentChallenge.LevelNumber, challengeIndex = ++currentChallenge.Index, Points = ++currentChallenge.Punkte })); } return(RedirectToAction(nameof(WrongAnswer), currentChallenge)); }
public IActionResult LoadLevel(int levelNumber, int challengeIndex, int Points) { if (_context.Levels.Count() == 0) { var firstLevel = CreateLevelWithChallenges(); _context.Levels.Add(firstLevel); } Level level = _context.Levels.Include(m => m.Challenges) .FirstOrDefault(m => m.LevelNumber == levelNumber); if (level == null) { level = CreateLevelWithChallenges(); } var challenges = level.Challenges; if (challenges.Count > challengeIndex) { Challenge currentChallenge = challenges[challengeIndex]; var vm = new CurrentChallengeViewModel() { ChallengeText = currentChallenge.ChallengeText, LevelNumber = currentChallenge.LevelNumber, Solution = currentChallenge.Solution, Index = challengeIndex, LevelChallengesCount = level.Challenges.Count, Punkte = Points, }; return(View(vm)); } else { var vm = new LevelCompletedViewModel() { NextLevelNr = levelNumber + 1, PossiblePoints = challenges.Count, ReachedPoints = Points, }; return(RedirectToAction(nameof(LevelCompleted), vm)); } }
public IActionResult WrongAnswer(CurrentChallengeViewModel currentChallenge) { return(View(currentChallenge)); }