public ActionResult Delete(int id) { Exam exam = context.Exams.Find(id); List <ExamQuestion> examQuestions = context.ExamQuestions.Where(x => x.ExamID == id).ToList(); List <ExamOfStudent> examOfStudent = context.ExamOfStudents.Where(x => x.ExamID == exam.Id).ToList(); List <QuestionOfStudent> qOfStudentList = new List <QuestionOfStudent>(); QuestionOfStudent qOfStudent = new QuestionOfStudent(); foreach (ExamOfStudent item in examOfStudent) { qOfStudentList = context.QuestionOfStudents.Where(x => x.ExamOfStudentID == item.Id).ToList(); if (context.QuestionOfStudents.Where(x => x.ExamOfStudentID == item.Id).ToList().Count > 0) { TempData["IsDelete"] = true; return(RedirectToAction("Examlist")); } context.Entry(item).State = System.Data.Entity.EntityState.Deleted; //exam.ExamOfStudents.Remove(item); } foreach (Subject item in exam.Subjects.ToList()) { exam.Subjects.Remove(item); } foreach (ExamQuestion item in examQuestions) { context.ExamQuestions.Remove(item); } context.SaveChanges(); context.Exams.Remove(exam); context.SaveChanges(); return(RedirectToAction("Examlist")); }
public ActionResult SaveExam() { Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1)); Response.Cache.SetNoStore(); Question question; QuestionOfStudent quesOfStudent; double rightCount = 0; ExamOfStudent examOfStudent = new ExamOfStudent(); examOfStudent = eIslem.GetAll().Where(x => x.StudentID == Convert.ToInt32(Session["UserId"]) && x.IsActive == true && x.ExamID == examID).FirstOrDefault(); double examResult = 0; try { int Id = (int)Session["UserID"]; foreach (KeyValuePair <string, string> item in answers) { string[] parses = item.Key.Split('.'); int userID = Convert.ToInt32(parses[0]); int key = Convert.ToInt32(parses[1]); string value = item.Value; if (userID == Id) { quesOfStudent = new QuestionOfStudent(); quesOfStudent.QuestionID = key; quesOfStudent.AnswerOfStudent = value; quesOfStudent.ExamOfStudentID = examOfStudent.Id; question = new Question(); question = qrepo.GetById(key); if (question.RightAnswer == value) { rightCount++; quesOfStudent.IsTrue = true; } else { quesOfStudent.IsTrue = false; } quesRepo.Add(quesOfStudent); } //quesOfStudent = new QuestionOfStudent(); //quesOfStudent.QuestionID = item.Key; //quesOfStudent.AnswerOfStudent = item.Value; //quesOfStudent.ExamOfStudentID = examOfStudent.Id; //question = new Question(); //question = qrepo.GetById(item.Key); //if (question.RightAnswer == item.Value) //{ // rightCount++; // quesOfStudent.IsTrue = true; //} //else //{ // quesOfStudent.IsTrue = false; //} //quesRepo.Add(quesOfStudent); } examResult = Math.Ceiling((100 / (double)examQuestions.Count) * rightCount); examOfStudent.Score = (byte)examResult; examOfStudent.IsActive = false; examScore = examResult; eIslem.Edit(examOfStudent); Session.Add("Score", examResult); } catch (Exception e) { return(RedirectToAction("NoExamError", "Error", e.Message)); } return(RedirectToAction("Result")); }