public JsonResult getQuizById(QuizGetViewModel quizGetter) { int id = Int32.Parse(quizGetter.id); Quiz quizdetails = _db.Quizs.Where(q2 => q2.QuizID == id).FirstOrDefault(); if (_db.IsAttempteds.Where(a => a.Username == quizGetter.Username && a.QuizID == quizdetails.QuizID).ToList().Count < 1) { IsAttempted iA = new IsAttempted(); iA.AttemptedTime = DateTime.Now; iA.Learner = _db.Users.Where(u => u.Username == quizGetter.Username).FirstOrDefault(); iA.Quiz = quizdetails; _db.IsAttempteds.Add(iA); _db.SaveChanges(); } else { return(Json(new ApiResponse { Message = "Quiz already attempted", Status = false, }, JsonRequestBehavior.AllowGet)); } return(Json(new ApiResponse { Message = "Found Information", Status = true, Data = new { quizdetails.Questions.Count, Questions = quizdetails.Questions.Select(s => new { s.ID, s.QuestionStatement, s.Options, s.Answer }).ToList(), quizdetails.Duration } }, JsonRequestBehavior.AllowGet)); return(Json(new ApiResponse { Message = "Invalid Information", Status = false, }, JsonRequestBehavior.AllowGet)); }
public ActionResult AttemptQuiz() { var name = Session["username"]; if (name != null) { var quiz = Request["quizId"]; int qu = int.Parse(quiz); Quiz quizdetails = _db.Quizs.Where(q2 => q2.QuizID == qu).FirstOrDefault(); if (_db.IsAttempteds.Where(a => a.Username == (String)name && a.QuizID == quizdetails.QuizID).ToList().Count < 1) { IsAttempted iA = new IsAttempted(); iA.AttemptedTime = DateTime.Now; iA.Learner = _db.Users.Where(u => u.Username == (String)name).FirstOrDefault(); iA.Quiz = quizdetails; _db.IsAttempteds.Add(iA); _db.SaveChanges(); } else { TempData["msg"] = "You have Attempted this Quiz Already!"; var offeredCourseId = quizdetails.offeredCourseID; return(RedirectToAction("ViewDetails", "Learner", new { offeredCourseId })); } ViewBag.quizId = quiz; ViewBag.OfferedCourseID = quizdetails.offeredCourseID; ViewBag.LearnerID = name; ViewBag.questions = quizdetails.Questions.ToList(); ViewBag.duration = quizdetails.Duration * 60; return(View()); } return(RedirectToAction("Index", "Default")); }