Esempio n. 1
0
        ///-------------------------------------------------------------------------------------------------
        /// <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());
            }
            }
        }
Esempio n. 3
0
        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("");
            }
            }
        }
Esempio n. 4
0
        ///-------------------------------------------------------------------------------------------------
        /// <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));
        }
Esempio n. 5
0
        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();
 }
Esempio n. 7
0
 public List <Question> GetQuestionsByQuestionTypeID(QuestionTypeID questionTypeID)
 {
     throw new NotImplementedException();
 }
Esempio n. 8
0
 public List <Question> GetQuestionListForTestByQuestionType(int TestID, QuestionTypeID questionTypeID)
 {
     throw new NotImplementedException();
 }
Esempio n. 9
0
 public double CalculateCorrectAnswers(List <Answer> submittedAnswers, AppUser applicant, QuestionTypeID questionTypeID, int questionCount, Test test)
 {
     throw new NotImplementedException();
 }
Esempio n. 10
0
        ///-------------------------------------------------------------------------------------------------
        /// <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);
        }
Esempio n. 11
0
 public void OnGet(QuestionTypeID QuestionTypeID, int TestID)
 {
     Questions = ApTestData.GetQuestionListForTestByQuestionType(TestID, QuestionTypeID);
     Test      = ApTestData.GetTestByID(TestID);
     this.TestCategoryTitle = QuestionTypeID.GetTestCategoryTitle();
 }