///------------------------------------------------------------------------------------------------- /// <summary> Gets questions by question type identifier. </summary> /// /// <param name="questionTypeID"> Identifier for the question type. </param> /// /// <returns> The questions by question type identifier as a List. </returns> ///------------------------------------------------------------------------------------------------- public List <Question> GetQuestionsByQuestionTypeID(QuestionTypeID questionTypeID) { var AllQuestions = db.Questions.Include(q => q.Answers).ToList(); var QuestionsByQuestionType = AllQuestions.FindAll(q => q.QuestionTypeID.Equals(questionTypeID)); return(QuestionsByQuestionType); }
public IActionResult OnPost(QuestionTypeID QuestionTypeID) { switch (QuestionTypeID) { case QuestionTypeID.Written_and_Verbal_Reasoning: { return(RedirectToPage("./ApTest/", new { TestID, QuestionTypeID = QuestionTypeID.Diagrammatic_Reasoning })); } case QuestionTypeID.Diagrammatic_Reasoning: { return(RedirectToPage("./ApTest/", new { TestID, QuestionTypeID = QuestionTypeID.Symbolic_Manipulation })); } default: { return(Page()); } } }
public static string GetTestCategoryTitle(this QuestionTypeID questionTypeID) { switch (questionTypeID) { case QuestionTypeID.Written_and_Verbal_Reasoning: { return("Written and Verbal Reasoning"); } case QuestionTypeID.Diagrammatic_Reasoning: { return("Diagrammatic Reasoning"); } case QuestionTypeID.Symbolic_Manipulation: { return("Symbolic Manipulation"); } default: { return(""); } } }
///------------------------------------------------------------------------------------------------- /// <summary> Gets question list for test by question type. </summary> /// /// <param name="TestID"> Identifier for the test. </param> /// <param name="questionTypeID"> Identifier for the question type. </param> /// /// <returns> The question list for test by question type. </returns> ///------------------------------------------------------------------------------------------------- public List <Question> GetQuestionListForTestByQuestionType(int TestID, QuestionTypeID questionTypeID) { List <Question> testQuestions = new List <Question>(); var tempQs = GetTestQuestions(TestID); for (int i = 0; i < tempQs.Count; i++) { testQuestions.Add(db.Questions.Include(a => a.Answers).SingleOrDefault(q => q.ID == tempQs[i].QuestionID)); } return(testQuestions.FindAll(q => q.QuestionTypeID == questionTypeID)); }
public IActionResult OnPost(List <Answer> answers, QuestionTypeID QuestionTypeID, int TestID) { Results = new List <double>(); Test = ApTestData.GetTestByID(TestID); AppUser appUser = new AppUser { Email = User.Identity.Name, }; ApTestData.SaveAnswerAttempt(answers, appUser, Test); if (answers.Count > 0) { ApTestData.Commit(); } switch (QuestionTypeID) { case QuestionTypeID.Written_and_Verbal_Reasoning: { TempData["Section1ResultString"] = ApTestData.CalculateCorrectAnswers(answers, appUser, QuestionTypeID, Questions.Count, Test).ToString(); return(RedirectToPage("./TestSectionHome/", new { TestID, QuestionTypeID = QuestionTypeID.Diagrammatic_Reasoning })); } case QuestionTypeID.Diagrammatic_Reasoning: { TempData["Section2ResultString"] = ApTestData.CalculateCorrectAnswers(answers, appUser, QuestionTypeID, Questions.Count, Test).ToString(); return(RedirectToPage("./TestSectionHome/", new { TestID, QuestionTypeID = QuestionTypeID.Symbolic_Manipulation })); } case QuestionTypeID.Symbolic_Manipulation: { TempData["Section3ResultString"] = ApTestData.CalculateCorrectAnswers(answers, appUser, QuestionTypeID, Questions.Count, Test).ToString(); Results.Add(Double.Parse(TempData["Section1ResultString"].ToString())); Results.Add(Double.Parse(TempData["Section2ResultString"].ToString())); Results.Add(Double.Parse(TempData["Section3ResultString"].ToString())); ApTestData.SaveTestResults(Results, TestID, appUser); ApTestData.Commit(); return(RedirectToPage("./TestComplete/")); } default: { return(Page()); } } }
public void OnGet(QuestionTypeID QuestionTypeID, int TestID) { Test = ApTestData.GetTestByID(TestID); this.QuestionTypeID = QuestionTypeID; this.TestCategoryTitle = QuestionTypeID.GetTestCategoryTitle(); }
public List <Question> GetQuestionsByQuestionTypeID(QuestionTypeID questionTypeID) { throw new NotImplementedException(); }
public List <Question> GetQuestionListForTestByQuestionType(int TestID, QuestionTypeID questionTypeID) { throw new NotImplementedException(); }
public double CalculateCorrectAnswers(List <Answer> submittedAnswers, AppUser applicant, QuestionTypeID questionTypeID, int questionCount, Test test) { throw new NotImplementedException(); }
///------------------------------------------------------------------------------------------------- /// <summary> Calculates the correct answers. </summary> /// /// <param name="submittedAnswers"> The submitted answers. </param> /// <param name="applicant"> The applicant. </param> /// <param name="questionTypeID"> Identifier for the question type. </param> /// <param name="questionCount"> Number of questions. </param> /// <param name="test"> The test. </param> /// /// <returns> A double value to serve as % score for that test section. </returns> ///------------------------------------------------------------------------------------------------- public double CalculateCorrectAnswers(List <Answer> submittedAnswers, AppUser applicant, QuestionTypeID questionTypeID, int questionCount, Test test) { int correctAnswers = 0; var answerBank = db.Answers.ToList(); var tempAppUser = db.Users.SingleOrDefault(user => user.Email == applicant.Email); foreach (var submitedA in submittedAnswers) { var tempAnswer = answerBank.SingleOrDefault(a => a.AnswerBody == submitedA.AnswerBody); if (tempAnswer.IsCorrect) { correctAnswers++; } } return((double)correctAnswers / (double)questionCount * 100); }
public void OnGet(QuestionTypeID QuestionTypeID, int TestID) { Questions = ApTestData.GetQuestionListForTestByQuestionType(TestID, QuestionTypeID); Test = ApTestData.GetTestByID(TestID); this.TestCategoryTitle = QuestionTypeID.GetTestCategoryTitle(); }