Exemplo n.º 1
0
        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"));
        }
Exemplo n.º 2
0
        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"));
        }