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); } }
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()); }
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()); }