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)); }
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)); }