Ejemplo n.º 1
0
        public ActionResult Result()
        {
            //if (Session["Score"] != null)
            //{
            Session.Remove("ExamOfStudentID");
            double result    = 0;
            int    GetQuesID = Convert.ToInt32(Session["ExamID"]);
            int    studentID = Convert.ToInt32(Session["UserID"]);

            result = examScore;
            ExamOfStudent c             = new ExamOfStudent();
            ExamOfStudent guncellenecek = new ExamOfStudent();

            if (Session["ExamID"] != null)
            {
                int idd = Convert.ToInt32(Session["ExamID"]);
                c = db.ExamOfStudents.Where(p => p.ExamID == GetQuesID && p.StudentID == studentID).FirstOrDefault();
                int cevaplanan = db.QuestionOfStudents.Where(p => p.ExamOfStudentID == GetQuesID).Count();
                if (c.Score == 123 && cevaplanan == 0)
                {
                    guncellenecek.Score     = 0;
                    guncellenecek.Id        = c.Id;
                    guncellenecek.IsActive  = false;
                    guncellenecek.ExamID    = c.ExamID;
                    guncellenecek.StudentID = c.StudentID;
                    eIslem.Edit(guncellenecek);
                }
                else
                {
                    byte examResult = Convert.ToByte(Math.Ceiling(result));
                    guncellenecek.Id        = c.Id;
                    guncellenecek.IsActive  = false;
                    guncellenecek.Score     = examResult;
                    guncellenecek.ExamID    = c.ExamID;
                    guncellenecek.StudentID = c.StudentID;
                    eIslem.Edit(guncellenecek);
                }
                Session.Remove("ExamID");
            }

            return(View(guncellenecek));
            //}
            //else
            //{
            //    return RedirectToAction("NotExamResult", "Error");
            //}
        }
Ejemplo n.º 2
0
        public ActionResult Information(int id)
        {
            examID = id;
            Student       student       = stdRepo.GetById(Convert.ToInt32(Session["UserID"]));
            ExamOfStudent examOfStudent = eIslem.GetAll().Where(x => x.StudentID == student.Id && x.IsActive == true && x.ExamID == examID).SingleOrDefault();

            if (examOfStudent != null)
            {
                Session.Add("ExamID", examOfStudent.ExamID);
            }
            //List<ExamQuestion> questionList = eQuestionRepo.GetAll().Where(x => x.ExamID == (int)Session["ExamID"] && x.ClassroomID == student.ClassroomID).ToList();
            List <ExamQuestion> questionList = eQuestionRepo.GetAll().Where(x => x.ExamID == (int)Session["ExamID"]).ToList();

            ViewBag.Score = Math.Round((100 / (decimal)questionList.Count), 1);

            examlist = db.Exams.FirstOrDefault(x => x.Id == id && x.State == true);
            return(View(examlist));
        }
Ejemplo n.º 3
0
        public ActionResult Exam(int id)
        {
            //examID = id;
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
            Response.Cache.SetNoStore();

            Exam exam = erepo.GetById(id);

            if (exam != null && exam.ExamEndTime > DateTime.Now && exam.ExamStartTime < DateTime.Now)
            {
                Session.Add("ExamTempID", id);
                Student       student       = stdRepo.GetById(Convert.ToInt32(Session["UserID"]));
                ExamOfStudent examOfStudent = eIslem.GetAll().Where(x => x.StudentID == student.Id && x.IsActive == true && x.ExamID == id).SingleOrDefault();
                if (examOfStudent != null)
                {
                    Session.Add("ExamID", examOfStudent.ExamID);
                    Session.Add("ExamOfStudentID", examOfStudent.Id);
                }

                if (Session["UserID"] != null && Session["ExamOfStudentID"] != null)
                {
                    examQuestions = new List <ExamQuestion>();
                    examQuestions = eQuestionRepo.GetAll().Where(x => x.ExamID == id).ToList();
                    QuestionDTO     questionDTO  = new QuestionDTO();
                    List <Question> questionList = new List <Question>();
                    questionList = StripQuestions(examQuestions);
                    ExamRepo eRepo = new ExamRepo();
                    Exam     Sinav = eRepo.GetById(id);
                    ExamEnd              = Convert.ToDateTime(Sinav.ExamEndTime);
                    Session["ExamEnd"]   = ExamEnd;
                    TempData["ExamName"] = exam.Name;
                    return(View(questionDTO.QuestionToDTO(questionList)));
                }
            }
            return(RedirectToAction("NoExamError", "Error"));
        }
Ejemplo n.º 4
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"));
        }
Ejemplo n.º 5
0
        public ActionResult Add(Exam item, string classroomName, FormCollection fcl)
        {
            Classroom           cRoom            = context.Classrooms.Where(x => x.Name == classroomName).FirstOrDefault();
            List <Question>     questionList     = new List <Question>();
            List <ExamQuestion> examQuestionList = new List <ExamQuestion>();
            ExamQuestion        examQuestion;
            //int intExamType = Convert.ToInt32(examType);
            int itemCount = fcl.Count;
            var keys      = Request.Form.AllKeys;

            //Sınav Ekleme
            //Öncelikle sınav ekliyoruz daha sonra sınavın konularını ve sorularını ekliyoruz.
            if (cRoom != null && Session["UserID"] != null)
            {
                item.Name        = Request.Form.Get(keys[0]);
                item.ClassroomID = cRoom.Id;
                //item.Type = Convert.ToInt32(examType);
                item.TrainerID = (int)Session["UserID"];
                item.State     = true;

                //Eklenecek olan sınavın daha önce kaydedilip kaydedilmediğini kontrol eder
                if (context.Exams.Any(x => x.Name == item.Name && x.ClassroomID == cRoom.Id))
                {
                    TempData["msg"] = "Sınav ekleme başarısız!!! " + cRoom.Name + " Sınıfının " + item.Name + "`ı daha önce yapılmıştır";
                    return(RedirectToAction("Add"));
                }
                //Veritabanında istenilen soru adedinin konu bazında yeterli olup olmadığını kontrol eder.
                for (int i = 2; i < itemCount - 4; i++)
                {
                    Subject subject          = context.Subjects.Find(Convert.ToInt32(keys[i]));
                    int     numberOfQuestion = context.Questions.Where(x => x.SubjectID == subject.Id).Count();

                    if (numberOfQuestion < Convert.ToInt32(Request.Form.Get(keys[i])))
                    {
                        TempData["msg1"] = "Sınav ekleme başarısız!!! " + subject.Name + " konusunda istediğiniz miktarda soru bulunmamaktadır. Bu konuda veritabanında '" + numberOfQuestion + "' adet soru bulunmaktadır";
                        return(RedirectToAction("Add"));
                    }
                }
                context.Entry(item).State = System.Data.Entity.EntityState.Added;
                context.SaveChanges();
                //List<Student> studentList = context.Students.Where(x => x.ClassroomID == item.ClassroomID)
                List <Student> studentList = context.Students.Where(x => x.Classrooms.Any(y => y.Id == item.ClassroomID)).ToList();
                foreach (Student student in  studentList)
                {
                    ExamOfStudent studentExam = new ExamOfStudent();
                    studentExam.ExamID               = item.Id;
                    studentExam.StudentID            = student.Id;
                    studentExam.Score                = 0;
                    studentExam.IsActive             = true;
                    context.Entry(studentExam).State = System.Data.Entity.EntityState.Added;
                }
            }

            //Sınav için formdan gelen subjectleri sınava ekler
            for (int i = 2; i < itemCount - 4; i++)
            {
                int     subID = Convert.ToInt32(keys[i]);
                Subject sub   = context.Subjects.Find(subID);
                item.Subjects.Add(sub);
            }

            //Sınavın sorularını sınava ekler
            for (int i = 2; i < itemCount - 4; i++)
            {
                questionList = GetQuestions(Convert.ToInt32(keys[i]), Convert.ToInt32(Request.Form.Get(keys[i])));
                foreach (Question q in questionList)
                {
                    examQuestion             = new ExamQuestion();
                    examQuestion.QuestionID  = q.Id;
                    examQuestion.ClassroomID = cRoom.Id;
                    examQuestion.ExamID      = item.Id;
                    examQuestionList.Add(examQuestion);
                }
            }
            foreach (ExamQuestion e in examQuestionList)
            {
                context.Entry(e).State = System.Data.Entity.EntityState.Added;
            }
            try
            {
                if (context.SaveChanges() > 0)
                {
                    TempData["message"] = true;
                }
            }
            catch
            {
                throw;
            }
            return(RedirectToAction("Add"));
        }