public void completeActivity() { view.createActivityPopUp(); if (currentChallenge != null) { var currentChallengeString = user.CurrentChallenge.Challenge.Name; } var listWithNotification = user.CompleteCurrentActivity(Grade, Comment); if (user.ChallengeCompleted()) //If challenge if completed { listWithNotification.Add(new Notification("Challenge Completed!", "Congratulations, you completed the challenge: " + user.CurrentChallenge.Challenge.Name + "!")); DropChallenge(); view.ShowChallengesDisplayed(); view.HideActivitiesForChallenge(); view.updateChallengeList(user.ActiveChallenges()); } view.AddAndRemoveCompletedTrophies(user.trophiesEarned); UpdateTotalPoints(); if (listWithNotification.Count > 0) { foreach (Notification n in listWithNotification) { if (n.Title == "Challenge Completed!") { view.createChallengePopUp(); } else if (n.Title == "Trophy Earned!") { view.createTrophyPopUp(); UpdateTrophies(); } } } if (user.CurrentChallenge != null) { List <Activity> activitysLeft = ChallengeActivitiesLeftInCurrentChallenge(); Debug.WriteLine("Activities left in challenge: "); foreach (Activity activity in activitysLeft) { Debug.WriteLine(activity.Name); } view.UpdateActivityForChallengeList(activitysLeft); } }