private void EvaluateAndRegister(RealExam studentExam, RealExam modelExam)
        {
            OptionAssignController     optionAssignController = new OptionAssignController();
            Dictionary <string, float> questionScores         = StudentExamUtils.EvaulateExam(studentExam, modelExam);
            StudentExam exam          = StudentExamUtils.NewRealExamToStudentExam(studentExam, (int)questionScores["~totalScore"], studentExam.studentId);
            int         studentExamId = studentExamController.AddStudentExam(exam);
            StudentExamQuestionController studentExamQuestionController = new StudentExamQuestionController();

            foreach (RealExamQuestion question in studentExam.examElements)
            {
                StudentQuestionTable studentQuestion = StudentExamUtils.RealQuestionToStudentQuestion(question, (int)questionScores[question.title], studentExamId, optionAssignController);
                studentExamQuestionController.AddStudentExamQuestion(studentQuestion);
            }
        }
示例#2
0
        public static RealExamQuestion[] GetAllQuestionElements(List <questionAssign> allQuestions, OptionAssignController optionAssignController)
        {
            List <RealExamQuestion> allExamElements = new List <RealExamQuestion>();

            foreach (questionAssign question in allQuestions)
            {
                allExamElements.Add(GetQuestionElement(question, optionAssignController.GetAllQuestionOptions(question.Id)));
            }
            return(allExamElements.ToArray());
        }
        public static StudentQuestionTable RealQuestionToStudentQuestion(RealExamQuestion question, int score, int examId, OptionAssignController optionAssignController)
        {
            string[]      studentAnswers    = question.answer;
            List <string> studentAnswersIds = new List <string>();

            foreach (string studentAnswer in studentAnswers)
            {
                studentAnswersIds.Add(optionAssignController.GetByNameAndQuestionId(studentAnswer, question.questionId).Id.ToString());
            }
            return(new StudentQuestionTable
            {
                score = score,
                questionId = question.questionId,
                studentAnswerIds = string.Join(",", studentAnswersIds.ToArray()),
                studentExamId = examId
            });
        }
        private static string[] GetStudentAnswers(StudentQuestionTable studentExamQuestion, OptionAssignController optionAssignController)
        {
            if (studentExamQuestion == null)
            {
                return new string[] { "" }
            }
            ;
            string[]   studentAnswerIds = studentExamQuestion.studentAnswerIds.Split(',');
            List <int> answerIds        = new List <int>();

            foreach (string studentAnswerId in studentAnswerIds)
            {
                int.TryParse(studentAnswerId, out int result);

                answerIds.Add(result);
            }
            List <string> answers = new List <string>();

            foreach (int answerId in answerIds)
            {
                OptionAssign answer = optionAssignController.GetById(answerId);
                if (answer != null)
                {
                    answers.Add(answer.optionTitle);
                }
            }
            return(answers.ToArray());
        }
 public static RealExamQuestion GetExamElement(questionAssign question, List <OptionAssign> allOptions, StudentQuestionTable studentExamQuestion, OptionAssignController optionAssignController)
 {
     return(new RealExamQuestion
     {
         type = question.type,
         title = question.title,
         multiple = question.type == "Single" ? false : true,
         options = OptionUtils.OptionsToRealOptions(allOptions),
         studentAnswer = GetStudentAnswers(studentExamQuestion, optionAssignController),
         answer = OptionUtils.OptionsToAnswers(allOptions),
         studentScore = studentExamQuestion.score,
         score = question.score,
         questionId = question.Id,
     });
 }
        public static RealExamQuestion[] GetAllStudentExamElements(int studentExamId, ExamController examController, List <questionAssign> allQuestions, QuestionAssignController questionAssignController, OptionAssignController optionAssignController, StudentExamQuestionController studentExamQuestionController)
        {
            List <RealExamQuestion> allExamElements = new List <RealExamQuestion>();

            foreach (questionAssign question in allQuestions)
            {
                if (question == null)
                {
                    continue;
                }
                StudentQuestionTable studentExamQuestion = studentExamQuestionController.GetByModelQuestionId(question.Id, studentExamId);
                allExamElements.Add(GetExamElement(question, optionAssignController.GetAllQuestionOptions(question.Id), studentExamQuestion, optionAssignController));
            }
            return(allExamElements.ToArray());
        }
示例#7
0
        public static RealExamQuestion[] GetAllQuestionElements(List <QuestionAssign> allQuestions, OptionAssignController optionAssignController)
        {
            List <RealExamQuestion> allExamElements = new List <RealExamQuestion>();

            foreach (QuestionAssign question in allQuestions)
            {
                System.Diagnostics.Debug.WriteLine("ExamQuestion: " + question.Id);
                allExamElements.Add(GetQuestionElement(question, optionAssignController.GetAllQuestionOptions(question.Id)));
            }
            return(allExamElements.ToArray());
        }