예제 #1
0
        protected Boolean checkIfCompletedAllPrerequisite(string userID, int quizID)
        {
            QuizDAO          quizDAO       = new QuizDAO();
            QuizResultDAO    qrDAO         = new QuizResultDAO();
            Course_elearnDAO ceDAO         = new Course_elearnDAO();
            Quiz             currentQuiz   = quizDAO.getQuizByID(quizID);
            Course_elearn    currentCourse = currentQuiz.getMainCourse();

            //check user completed all prereq course's quizzes
            ArrayList allPrereqCourses = ceDAO.getPrereqOfCourse(currentCourse.getCourseID());

            if (allPrereqCourses.Count > 0)
            {
                foreach (Course_elearn ce in allPrereqCourses)
                {
                    if (ce.getStatus().Equals("active") && (ce.getStartDate() <= DateTime.Now.Date && ce.getExpiryDate() >= DateTime.Now.Date))
                    {
                        List <Quiz> allQuizzes = quizDAO.getAllQuizByCourseID(ce.getCourseID());
                        foreach (Quiz innerQuiz in allQuizzes)
                        {
                            if (!qrDAO.getQuizResultByUserIDandQuizID(userID, innerQuiz.getQuizID()))
                            {
                                return(false);
                            }
                        }
                    }
                }
            }

            //if all prereq courses cleared, to check current quiz's prereqs
            ArrayList allPrerequisites = quizDAO.getPrereqOfQuiz(quizID);

            foreach (Quiz prereq in allPrerequisites)
            {
                if (currentCourse.getStatus().Equals("active") && (currentCourse.getStartDate() <= DateTime.Now.Date && currentCourse.getExpiryDate() >= DateTime.Now.Date))
                {
                    if (!qrDAO.getQuizResultByUserIDandQuizID(userID, prereq.getQuizID()))
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
        protected ArrayList getAllPrerequisites(int courseID)
        {
            ArrayList        toReturn      = new ArrayList();
            Course_elearnDAO ceDAO         = new Course_elearnDAO();
            ArrayList        coursePrereqs = ceDAO.getPrereqOfCourse(courseID);

            foreach (Course_elearn prerequisite in coursePrereqs)
            {
                toReturn.Add(prerequisite.getCourseID());
                ArrayList morePrereq = getAllPrerequisites(prerequisite.getCourseID());
                if (morePrereq.Count > 0)
                {
                    foreach (int prerequisitesID in morePrereq)
                    {
                        toReturn.Add(prerequisitesID);
                    }
                }
            }
            return(toReturn);
        }