예제 #1
0
        public ActionResult Create(QuizAccess quiz)
        {
            QuizTransfer quizModule = new QuizTransfer();
            QuizAccess   quizDe     = new QuizAccess();

            try
            {
                if (Request.Form.Get("moduleId") != null)
                {
                    quiz.ModuleId = Convert.ToInt32(Request.Form.Get("moduleId"));
                }
                quizDe = quiz;
                quizModule.QuizDescription = quizDe;
                Session.Add("quiz", quizModule);
                return(RedirectToAction("question"));
            }
            catch (Exception ex)
            {
                //get the innermost exception
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                ModelState.AddModelError("", "error on insert: " + ex.GetBaseException().Message);
                return(View());
            }
        }
        public ActionResult TakeQuiz(int id)
        {
            List <QuizTransfer> quizListForModule = new List <QuizTransfer>();
            QuizTransfer        quizForModule     = new QuizTransfer();


            SelectListItem T = new SelectListItem()
            {
                Text = "True", Value = "T"
            };
            SelectListItem F = new SelectListItem()
            {
                Text = "False ", Value = "F"
            };

            ViewBag.trueOrFalse = new SelectList(new SelectListItem[] { T, F }, "Value", "Text");

            quizListForModule = (List <QuizTransfer>)Session["quizListForModule"];
            foreach (QuizTransfer item in quizListForModule)
            {
                if (item.QuizDescription.QuizId == id)
                {
                    quizForModule            = item;
                    Session["quizForModule"] = quizForModule;
                    break;
                }
            }
            return(View(quizForModule));
        }
예제 #3
0
        public ActionResult SelectionItem()
        {
            QuizTransfer quizModule            = new QuizTransfer();
            List <QuestionSelectItem> itemList = new List <QuestionSelectItem>();

            quizModule = (QuizTransfer)Session["quiz"];
            itemList   = quizModule.MulSelQuestion.Last().SelectionItems;
            Session["mulQuestionDes"]    = quizModule.MulSelQuestion.Last().QuestionAnswer.QuestionDescription;
            Session["mulQuestionAnswer"] = quizModule.MulSelQuestion.Last().QuestionAnswer.Answer;
            ViewBag.itemList             = itemList;
            return(View());
        }
예제 #4
0
        /// <summary>
        /// When customer click finish button, add this quiz to database, then display all quiz
        /// </summary>
        /// <returns></returns>
        public ActionResult AddQuiz()
        {
            IQuizService quizService = new QuizService();
            QuizTransfer quizModule  = new QuizTransfer();

            quizModule = (QuizTransfer)Session["quiz"];
            quizModule.BoolQuestionNumber   = quizModule.BoolQuestion.Count;
            quizModule.MulSelQuestionNumber = quizModule.MulSelQuestion.Count;
            quizService.AddQuiz(quizModule);

            TempData["message"] = "Quiz " + quizModule.QuizDescription.QuizName + " has been added successfully.";
            return(RedirectToAction("Index"));
        }
예제 #5
0
        public ActionResult SelectionItem(QuestionSelectItem item)
        {
            QuizTransfer quizModule = new QuizTransfer();
            int          number     = 0;

            quizModule = (QuizTransfer)Session["quiz"];
            quizModule.MulSelQuestion.Last().SelectionItems.Add(item);
            number = quizModule.MulSelQuestion.Last().ItemsNumber;
            number++;
            quizModule.MulSelQuestion.Last().ItemsNumber = number;
            Session.Add("quiz", quizModule);
            return(RedirectToAction("SelectionItem"));
        }
예제 #6
0
        public ActionResult question(QuestionAnswerAccess question)
        {
            QuizTransfer     quizModule  = new QuizTransfer();
            QuestionTransfer mulQuestion = new QuestionTransfer();

            //List<QuestionAnswerAccess> boolQuestionList = new List<QuestionAnswerAccess>();
            //List<QuestionTransfer> mulQuestionList = new List<QuestionTransfer>();

            try
            {
                quizModule = (QuizTransfer)Session["quiz"];
                if (Request.Form.Get("questionType") != null)
                {
                    question.Type = Request.Form.Get("questionType");
                }

                if (Request.Form.Get("answer") != null)
                {
                    question.Answer = Request.Form.Get("answer");
                }
                //questionDe = question;
                if (question.Type == "bool")
                {
                    quizModule.BoolQuestion.Add(question);
                    Session.Add("quiz", quizModule);
                    return(RedirectToAction("question"));
                }
                else
                {
                    mulQuestion.QuestionAnswer = question;
                    quizModule.MulSelQuestion.Add(mulQuestion);
                    Session.Add("quiz", quizModule);
                    return(RedirectToAction("SelectionItem"));
                }
            }
            catch (Exception ex)
            {
                //get the innermost exception
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                ModelState.AddModelError("", "error on add quiz: " + ex.GetBaseException().Message);
                Session.Add("quiz", "");
                return(View("Index"));
            }
        }
예제 #7
0
        public ActionResult Delete(int quizId, int moduleId)
        {
            List <QuizTransfer> quizList      = (List <QuizTransfer>)Session["quizList"];
            QuizTransfer        quiz          = new QuizTransfer();
            ModuleService       moduleService = new ModuleService();
            List <ModuleAccess> moduleList    = moduleService.GetModuleData();

            foreach (var item in quizList)
            {
                if (quizId == item.QuizDescription.QuizId)
                {
                    quiz            = item;
                    Session["quiz"] = quiz;
                    break;
                }
            }

            ViewBag.moduleId = new SelectList(moduleList, "moduleId", "moduleName", moduleId);
            return(View(quiz));
        }
예제 #8
0
        public ActionResult Update(QuizTransfer quiz)
        {
            IQuizService quizService = new QuizService();
            QuizTransfer quiz1       = (QuizTransfer)Session["quiz"];

            //modify quiz
            if (Request.Form.Get("quizName") != null)
            {
                quiz1.QuizDescription.QuizName = Request.Form.Get("quizName");
            }

            if (Request.Form.Get("quizDescription") != null)
            {
                quiz1.QuizDescription.Description = Request.Form.Get("quizDescription");
            }

            if (Request.Form.Get("passingGrade") != null)
            {
                quiz1.QuizDescription.PassingGrade = Convert.ToInt32(Request.Form.Get("passingGrade"));
            }

            if (Request.Form.Get("moduleId") != null)
            {
                quiz1.QuizDescription.ModuleId = Convert.ToInt32(Request.Form.Get("moduleId"));
            }

            //modify bool question
            for (int i = 0; i < quiz1.BoolQuestionNumber; i++)
            {
                if (Request.Form.Get(i + "boolQuestionDescription") != null)
                {
                    quiz1.BoolQuestion.ElementAt(i).QuestionDescription = Request.Form.Get(i + "boolQuestionDescription");
                }
                if (Request.Form.Get(i + "boolAnswer") != null)
                {
                    quiz1.BoolQuestion.ElementAt(i).Answer = Request.Form.Get(i + "boolAnswer");
                }
            }

            //modify multiselect question
            for (int j = 0; j < quiz1.MulSelQuestionNumber; j++)
            {
                if (Request.Form.Get(j + "mulSelQuestionDescription") != null)
                {
                    quiz1.MulSelQuestion.ElementAt(j).QuestionAnswer.QuestionDescription = Request.Form.Get(j + "mulSelQuestionDescription");
                }
                if (Request.Form.Get(j + "mulSelQuestionAnswer") != null)
                {
                    quiz1.MulSelQuestion.ElementAt(j).QuestionAnswer.Answer = Request.Form.Get(j + "mulSelQuestionAnswer");
                }

                //modify items of multiselect question
                for (int k = 0; k < quiz1.MulSelQuestion.ElementAt(j).ItemsNumber; k++)
                {
                    if (Request.Form.Get(j.ToString() + k.ToString() + "choiceNumber") != null)
                    {
                        quiz1.MulSelQuestion.ElementAt(j).SelectionItems.ElementAt(k).ChoiceSequenceNumber = Request.Form.Get(j.ToString() + k.ToString() + "choiceNumber");
                    }

                    if (Request.Form.Get(j.ToString() + k.ToString() + "choiceDescription") != null)
                    {
                        quiz1.MulSelQuestion.ElementAt(j).SelectionItems.ElementAt(k).ChoiceDescription = Request.Form.Get(j.ToString() + k.ToString() + "choiceDescription");
                    }
                }
            }
            quizService.UpdateQuiz(quiz1);
            TempData["message"] = "Quiz " + quiz1.QuizDescription.QuizName + " has been updated successfully.";
            return(RedirectToAction("Index"));
        }
        public ActionResult EndTakeQuiz()
        {
            //get membershipTypeName from the form
            //if (Request.Form.Get("membershipTypeName") != null)
            //{
            //    membership.membershipTypeName = Request.Form.Get("membershipTypeName");
            //}
            IQuizService            quizService        = new QuizService();
            IAccountService         accountService     = new AccountService();
            QuizRecordAccess        quizRecord         = new QuizRecordAccess();
            QuizAccountAnswerAccess quizAccountRecord  = new QuizAccountAnswerAccess();
            List <string>           acccountBoolAnswer = new List <string>();
            List <string>           acccountMulAnswer  = new List <string>();
            int    correctNumber = 0;
            int    mark          = 0;
            string userName      = User.Identity.Name;
            int    accountId     = accountService.GetAccountId(userName);


            QuizTransfer quiz = (QuizTransfer)Session["quizForModule"];

            //modify bool question
            for (int i = 0; i < quiz.BoolQuestionNumber; i++)
            {
                if (Request.Form.Get("boolQuestion" + i) != null)
                {
                    quizAccountRecord.QuestionAnswerId = quiz.BoolQuestion.ElementAt(i).QuestionAnswerId;
                    quizAccountRecord.AccountId        = accountId;
                    quizAccountRecord.Answer           = Request.Form.Get("boolQuestion" + i);
                    acccountBoolAnswer.Add(Request.Form.Get("boolQuestion" + i));
                    if (Request.Form.Get("boolQuestion" + i) == quiz.BoolQuestion.ElementAt(i).Answer)
                    {
                        correctNumber++;
                    }
                }
                else
                {
                    acccountBoolAnswer.Add(" ");
                }
            }

            //modify multiselect question
            for (int j = 0; j < quiz.MulSelQuestionNumber; j++)
            {
                if (Request.Form.Get("multiSelectItem" + j) != null)
                {
                    quizAccountRecord.QuestionAnswerId = quiz.MulSelQuestion.ElementAt(j).QuestionAnswer.QuestionAnswerId;
                    quizAccountRecord.AccountId        = accountId;
                    quizAccountRecord.Answer           = Request.Form.Get("multiSelectItem" + j);
                    acccountMulAnswer.Add(Request.Form.Get("multiSelectItem" + j));
                    if (Request.Form.Get("multiSelectItem" + j) == quiz.MulSelQuestion.ElementAt(j).QuestionAnswer.Answer)
                    {
                        correctNumber++;
                    }
                }
                else
                {
                    acccountMulAnswer.Add(" ");
                }
            }

            //calculate mark
            mark                  = Convert.ToInt32(Math.Round((double)((float)correctNumber / (float)(quiz.MulSelQuestionNumber + quiz.BoolQuestionNumber)), 2) * 100);
            Session["mark"]       = mark;
            Session["BoolAnswer"] = acccountBoolAnswer;
            Session["MulAnswer"]  = acccountMulAnswer;
            //save data in quizRecord table
            quizRecord.AccountId    = accountId;
            quizRecord.HighestGrade = mark;
            quizRecord.QuizId       = quiz.QuizDescription.QuizId;
            quizService.SaveQuizRecord(quizRecord);

            //save data in Quiz_Account_Answer table

            return(RedirectToAction("QuizResult"));
        }