Beispiel #1
0
        public ActionResult Exam(StudentExamViewModel examViewModel)
        {
            var quizes = InMemoryData.GetQuizData();
            var quiz   = quizes.FirstOrDefault(q => q.Id == examViewModel.QuizId);

            if (quiz != null)
            {
                var examResult = GetExamResult(examViewModel.StudentName, quiz, examViewModel);
                return(View("ExamResult", examResult));
            }
            return(View("ExamResult", new ExamResult(examViewModel.StudentName, examViewModel.QuizText, 100, 0)));
        }
Beispiel #2
0
        public ExamResult GetExamResult(string studentName, Quiz quiz, StudentExamViewModel examViewModel)
        {
            var marksObtained = 0;

            foreach (var question in examViewModel.QuestionsList)
            {
                //find the corresponding actual question
                var actualQuestion = quiz.Questions.FirstOrDefault(q => q.Id == question.QuestionId);
                if (actualQuestion != null)
                {
                    var actualAnswer = actualQuestion.Answers.FirstOrDefault(a => a.IsCorrect);
                    if (actualAnswer != null)
                    {
                        //now check it with given user answer
                        if (question.SelectedAnswerId == actualAnswer.Id)
                        {
                            marksObtained += actualQuestion.Marks;
                        }
                    }
                }
            }
            return(new ExamResult(studentName, quiz.QuizText, quiz.TotalMarks, marksObtained));
        }
Beispiel #3
0
        private static StudentExamViewModel BuildExamVm(string studentName, Quiz quiz)
        {
            var examVm = new StudentExamViewModel();

            examVm.StudentName = studentName;
            examVm.QuizId      = quiz.Id;
            examVm.QuizText    = quiz.QuizText;
            foreach (var question in quiz.Questions)
            {
                var questionVm = new QuestionVm(question.QuestionText);
                questionVm.QuestionId = question.Id;
                foreach (var answer in question.Answers)
                {
                    var answerVm = new AnswerVm();
                    answerVm.Id         = answer.Id;
                    answerVm.AnswerText = answer.AnswerText;
                    questionVm.Answers.Add(answerVm);
                }

                examVm.QuestionsList.Add(questionVm);
            }

            return(examVm);
        }