public async void OnGameCompleted(object obj, EventArgs args) { _wasGameBeaten = true; Serilizer.ClearSaveGameCache(); string message = null; string levelUpMessage = null; int numberOfLevelups = 0; EventHandler onLevelUp = (object o, EventArgs e) => { numberOfLevelups++; }; // Sub our level up event just in case we did end level up. _expMgr.OnLevelUp += onLevelUp; _expMgr.PuzzleCompleted(_difficulty, (int)_secondsTicking); if (numberOfLevelups != 0) { levelUpMessage = Environment.NewLine + "You leveled up " + numberOfLevelups.ToString(); if (numberOfLevelups > 1) { levelUpMessage += " times"; } else { levelUpMessage += " time"; } } if (_gameInfo.AddIfHighScore(_difficulty, (int)_secondsTicking)) { message = "New Highscore"; } string finalMessage = "You win!"; if (message != null) { finalMessage = finalMessage + Environment.NewLine + message; } SaveApplicationData(); // Add to the total number of times the game was beaten. TimesPlayedData.OnGameBeaten(_difficulty); MessageDialog dlg = new MessageDialog(finalMessage, "Congragulations!"); await dlg.ShowAsync(); Frame.Navigate(typeof(MainPage)); }