public ActionResult GenerateResult(FormCollection form) { string questions = Request["QID"]; string TeacherID = Request["TID"]; string QuizID = Request["QuizID"]; string CourseID = Request["CID"]; string attempt = Request["TotalAttempts"]; var qu = from x in db.courses where x.cid == CourseID select x; string cname = ""; foreach (var a in qu) cname = a.name; string[] token = questions.Split(','); int totalQuestion = token.Length - 1; int obtainedMarks = 0; List<question> qs = new List<question>(); var q = from x in db.questions where (x.cid.Equals(CourseID)) select x; foreach (var a in q) { question s = new question(); s.quid = a.quid; s.statement = a.statement; s.option_A = a.option_A; s.option_B = a.option_B; s.Option_C = a.Option_C; s.option_D = a.option_D; s.correctOption = a.correctOption; s.solution = a.solution; s.marks = a.marks; qs.Add(s); } int attempted = 0; int wrong = 0; int correct = 0; int blank = 0; string str = form[token[1]]; for (int i = 1; i < token.Length; i++) { if (form[token[i]] != null) { attempted = attempted + 1; if (qs.Find(ques => ques.quid == Convert.ToInt32(token[i])).correctOption.Equals(form[token[i]])) { obtainedMarks = obtainedMarks + 1; correct = correct + 1; } else { wrong = wrong + 1; } } } blank = totalQuestion - attempted; int qid = Convert.ToInt32(QuizID); string id = Session["id"].ToString(); var res = db.quizResults.SingleOrDefault(y =>y.qid == qid && y.cid.Equals(CourseID) && y.tid.Equals(TeacherID) && y.sid.Equals(id)); quizResult qr = new quizResult(); qr.cid = CourseID; qr.qid = Convert.ToInt32(QuizID); qr.tid = TeacherID; qr.sid = Session["id"].ToString(); qr.totalmarks = totalQuestion.ToString(); qr.obtainMarks = obtainedMarks.ToString(); if (res != null) { if (Convert.ToInt32(attempt) > res.attempts && Convert.ToInt32(res.obtainMarks) < obtainedMarks) { res.totalmarks = totalQuestion.ToString(); res.obtainMarks = obtainedMarks.ToString(); res.attempts = res.attempts + 1; Log log = new Log(); log.courseId = qr.cid; log.discription = "Take Quiz "+res.attempts; log.totalMarks = Convert.ToInt32(qr.totalmarks); log.tName = qr.tid; log.type = "Quiz"; log.studentId = qr.sid; log.obtainedMarks = Convert.ToInt32(qr.obtainMarks); log.date = DateTime.Now; db.Logs.Add(log); db.SaveChanges(); } } else if (res == null) { qr.attempts = 1; Log log = new Log(); log.courseId = qr.cid; log.discription = "Take Quiz Attempt # " + qr.attempts; log.totalMarks = Convert.ToInt32(qr.totalmarks); log.tName = qr.tid; log.type = "Quiz"; log.studentId = qr.sid; log.obtainedMarks = Convert.ToInt32(qr.obtainMarks); log.date = DateTime.Now; db.Logs.Add(log); db.quizResults.Add(qr); db.SaveChanges(); } ViewBag.correct = correct; ViewBag.wrong = wrong; ViewBag.blank = blank; ViewBag.attempted = attempted; ViewBag.name = cname; return View(qr); }
public List<quizResult> getResult( string id , string cid , int qNo) { var query = from x in db.quizResults where x.tid == id && x.cid == cid && (int)x.quizNum == qNo select x; List<quizResult> data = new List<quizResult>(); foreach (var q in query) { quizResult a = new quizResult(); a.cid = q.cid; a.qid = q.qid; a.sid = q.sid; a.tid = q.tid; a.obtainMarks = q.obtainMarks; a.totalmarks = q.totalmarks; a.quizNum = q.quizNum; data.Add(a); } return data; }
public List<quizResult> getResult(string id) { var query = from x in db.quizResults where x.sid == id select x; List<quizResult> data = new List<quizResult>(); foreach (var q in query) { quizResult a = new quizResult(); a.cid = q.cid; a.qid = q.qid; a.sid = q.sid; a.tid = q.tid; a.obtainMarks = q.obtainMarks; a.totalmarks = q.totalmarks; data.Add(a); } return data; }