Exemplo n.º 1
0
        public ActionResult GetUserQuizes(int id)
        {
            UserViewModel vmUser = session.getSessionUser();

            if (vmUser == null)
            {
                if (!val.getUserCredentials(Request))
                {
                    return(RedirectToAction("Login", "Home"));
                }
                vmUser = session.getSessionUser();
            }
            if (!val.checkUserAuth(vmUser, managers))
            {
                return(RedirectToAction("Index", "Home", new { error = "Invalid User Credentials" }));
            }
            Queries query = new Queries();
            User    user  = query.getUserById(id);
            List <EmployeeQuizesViewModel> employeeQuizes = new List <EmployeeQuizesViewModel>();

            string[] groups = user.userGroups.Split(',');
            foreach (string group in groups)
            {
                int          groupId       = query.getGroupByName(group).id;
                List <Quize> quizesByGroup = query.getQuizesByGroupId(groupId);
                foreach (Quize quiz in quizesByGroup)
                {
                    EmployeeQuizesViewModel employeeQuiz = new EmployeeQuizesViewModel();
                    employeeQuiz.userId      = user.id;
                    employeeQuiz.firstName   = user.firstName;
                    employeeQuiz.lastName    = user.lastName;
                    employeeQuiz.quizId      = quiz.id;
                    employeeQuiz.quizTitle   = quiz.title;
                    employeeQuiz.isCompleted = false;
                    employeeQuiz.isGraded    = false;
                    List <UserQuizQuestionAnswer> uqqas = query.getQuizByUserIdQuizId(user.id, quiz.id);
                    if (uqqas.Count > 0)
                    {
                        employeeQuiz.isGraded    = true;
                        employeeQuiz.isCompleted = true;
                        foreach (UserQuizQuestionAnswer uqqa in uqqas)
                        {
                            if (query.getQuestionById(uqqa.questionId).questionType == "shortAnswer")
                            {
                                if (uqqa.isApproved != null && !(bool)uqqa.isApproved)
                                {
                                    employeeQuiz.isGraded = false;
                                }
                            }
                        }
                    }
                    employeeQuizes.Add(employeeQuiz);
                }
            }
            return(Json(employeeQuizes, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        public ActionResult GetUserQuizes()
        {
            UserViewModel vmUser = session.getSessionUser();

            if (vmUser == null)
            {
                if (!val.getUserCredentials(Request))
                {
                    return(RedirectToAction("Login", "Home"));
                }
                vmUser = session.getSessionUser();
            }
            Queries query = new Queries();
            User    user  = query.getUserBySam(vmUser.modelToUser(session.getSessionUser()).SAMAccountName);
            List <EmployeeQuizesViewModel> employeeQuizes = new List <EmployeeQuizesViewModel>();

            string[] groups = user.userGroups.Split(',');
            foreach (string group in groups)
            {
                int          groupId       = query.getGroupByName(group).id;
                List <Quize> quizesByGroup = query.getQuizesByGroupId(groupId);
                foreach (Quize quiz in quizesByGroup)
                {
                    if (DateTime.Now.Ticks >= quiz.startDate.Ticks)
                    {
                        List <Question> questions = query.getQuestionsByQuizId(quiz.id);
                        if (questions.Count > 0)
                        {
                            EmployeeQuizesViewModel employeeQuiz = new EmployeeQuizesViewModel();
                            employeeQuiz.userId         = user.id;
                            employeeQuiz.firstName      = user.firstName;
                            employeeQuiz.lastName       = user.lastName;
                            employeeQuiz.quizId         = quiz.id;
                            employeeQuiz.quizTitle      = quiz.title;
                            employeeQuiz.startDate      = quiz.startDate;
                            employeeQuiz.preferredDate  = quiz.preferDate;
                            employeeQuiz.expirationDate = quiz.expiredDate;
                            employeeQuiz.isCompleted    = false;
                            employeeQuiz.isGraded       = false;
                            List <UserQuizQuestionAnswer> uqqas = query.getQuizByUserIdQuizId(user.id, quiz.id);
                            double uqqaCount = uqqas.Count();
                            if (uqqaCount > 0)
                            {
                                employeeQuiz.isCompleted = true;
                                employeeQuiz.isGraded    = true;
                                double numberCorrect = 0;
                                foreach (UserQuizQuestionAnswer uqqa in uqqas)
                                {
                                    if (uqqa.isApproved != null && (bool)uqqa.isApproved)
                                    {
                                        numberCorrect++;
                                    }
                                    else if (query.getQuestionById(uqqa.questionId).questionType == "shortAnswer" && uqqa.isChecked == false)
                                    {
                                        uqqaCount--;
                                        employeeQuiz.isGraded = false;
                                    }
                                }
                                employeeQuiz.percentCorrect = Math.Round((numberCorrect / uqqaCount), 2);
                            }
                            employeeQuizes.Add(employeeQuiz);
                        }
                    }
                }
            }
            return(Json(employeeQuizes, JsonRequestBehavior.AllowGet));
        }