/// <summary>
        /// Closes an exam and gives the user a grade, points and notification.
        /// </summary>
        /// <param name="levelExamId">id of a levelexam</param>
        /// <param name="userInfoId">id of an userinfo</param>
        /// <returns>Points of an exam</returns>
        public double ReturnExam(int levelExamId, int userInfoId)
        {
            if (HasAccessToExam(levelExamId, userInfoId))
            {
                var levelExamResult = new LevelExamResult();
                levelExamResult.UserInfoId = userInfoId;
                levelExamResult.LevelExamId = levelExamId;

                var exam = GameSchoolEntities.LevelExams.Where(x => x.LevelExamId == levelExamId).Single();

                var correctAnswer = exam.LevelExamQuestions.Where(
                    x =>
                    x.LevelExamAnswers.Where(y => y.UserInfoes.Where(z => z.UserInfoId == userInfoId).Count() > 0).Where
                        (t => t.Correct).Count() > 0);

                levelExamResult.Grade = ((correctAnswer.Count() * 1.0) / exam.LevelExamQuestions.Count()) * 10;

                GameSchoolEntities.LevelExamResults.AddObject(levelExamResult);
                Save();

                if (ExternalNotificationContainer != null)
                {
                    ExternalNotificationContainer.CreateNotification(string.Format("Þú hefur fengið {0} fyrir prófið \"{1}\"", levelExamResult.Grade, exam.Name), string.Format("/Exam/Index/{0}", exam.Level.CourseId), userInfoId);
                }
                if (ExternalPointContainer != null)
                {
                    const int totalPointsPerGradeUnit = 5;
                    int points = ExternalPointContainer.CalculatePointsByGrade(levelExamResult.Grade,
                                                                               totalPointsPerGradeUnit);
                    if (points > 0)
                    {
                        ExternalPointContainer.AddPointsToLevel(userInfoId, exam.LevelId, points,
                                                                string.Format(
                                                                    "Þú hefur fengið {0} stig fyrir prófið \"{1}\".",
                                                                    points, exam.Name));
                    }
                }
                return levelExamResult.Grade;
            }
            return 0;
        }