public ActionResult Lesson(int subjectId, int lessonId)
        {
            using (EducationDBContext db = new EducationDBContext())
            {
                var lstQuizz = (from q in db.Quizzs where q.CurrentLessionId == lessonId orderby q.Id select q);

                var lstNumQues = (from qz in lstQuizz
                                  join qs in db.Questions
                                  on qz.Id equals qs.CurrentQuizzId
                                  orderby qz.Id
                                  group qs.Id by qz.Id into g
                                  select new { key = g.Key, count = g.Count() }).ToList();

                var lstquizzDTO = AutoMap.Mapper.Map<List<QuizzDTO>>(lstQuizz.ToList());
                for (int i = 0; i < lstquizzDTO.Count(); i++)
                {
                    lstquizzDTO.ElementAt(i).Image = string.IsNullOrEmpty(lstquizzDTO.ElementAt(i).Image) ? "~/Assets/images/quizz/quizz_default.png" : lstquizzDTO.ElementAt(i).Image;
                    lstquizzDTO.ElementAt(i).Level = lstquizzDTO.ElementAt(i).Level.HasValue ? lstquizzDTO.ElementAt(i).Level : 0;
                    lstquizzDTO.ElementAt(i).NumberQuestion = lstquizzDTO.ElementAt(i).NumberQuestion.HasValue ? lstquizzDTO.ElementAt(i).NumberQuestion : lstNumQues.ElementAtOrDefault(i)?.count;
                }
                ViewBag.subjectId = subjectId;
                ViewBag.lessonId = lessonId;
                return View(lstquizzDTO);

            }
        }
Exemple #2
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            bool authorize = false;
            var  userId    = Convert.ToInt32(httpContext.Session["id"]);

            if (userId != 0)
            {
                using (EducationDBContext context = new EducationDBContext())
                {
                    var userRole = (from u in context.Users

                                    where u.Id == userId
                                    select new
                    {
                        u.Role
                    }).FirstOrDefault();
                    foreach (var role in allowedroles)
                    {
                        if (role == userRole.Role)
                        {
                            return(true);
                        }
                    }
                }
            }
            return(authorize);
        }
 public ActionResult Subject(int courseId, int subjectId)
 {
     using (EducationDBContext db = new EducationDBContext())
     {
         var subject = (from s in db.Subjects where s.Id == subjectId select s).FirstOrDefault();
         var subjectDTO = AutoMap.Mapper.Map<SubjectDTO>(subject);
         subjectDTO.Image = string.IsNullOrEmpty(subjectDTO.Image) ? "~/Assets/images/quizz/subject__default.png" : subjectDTO.Image;
         subjectDTO.Rate = subjectDTO.Rate.HasValue ? (((float)subjectDTO.Rate / 5.0) * 100) : 0;
         subjectDTO.Total_rate = subjectDTO.Total_rate.HasValue ? subjectDTO.Total_rate : 0;
         var lstLesson = (from l in db.Lessions where l.CurentSubjectId == subjectDTO.Id orderby l.Id select l).Select(l => new LessonDTO()
         {
             Id = l.Id,
             CurentSubjectId = l.CurentSubjectId,
             Content = l.Content,
             Describtion = l.Describtion,
             Name = l.Name,
             View = l.View,
             Url = l.Url
         }).ToList();
         dynamic model = new ExpandoObject();
         model.subjectDTO = subjectDTO;
         model.lstLesson = lstLesson;
         return View(model);
     }
 }
Exemple #4
0
        public ActionResult Verify(UserLoginDTO userLogin)
        {
            if (ModelState.IsValid)
            {
                using (EducationDBContext db = new EducationDBContext())
                {
                    var user = (from u in db.Users where u.Email.Equals(userLogin.Email) && u.Password.Equals(userLogin.Password) select u).FirstOrDefault();

                    if (user != null)
                    {
                        FormsAuthentication.SetAuthCookie(userLogin.Email, false);
                        UserDTO userDTO = AutoMap.Mapper.Map <UserDTO>(user);
                        Session["account"] = userDTO.Email;
                        Session["id"]      = userDTO.Id;
                        Session["role"]    = userDTO.Role;
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        //k ton tai
                        return(View("Error"));
                    }
                }
            }
            else
            {
                return(View("Error"));
            }
        }
        public JsonResult search(string key)
        {
            using (EducationDBContext db = new EducationDBContext())
            {
                var lst = (from l in db.Lessions where l.Name.Contains(key) select l).ToList();

                return(Json(new { data = lst }, JsonRequestBehavior.AllowGet));
            }
        }
 public ActionResult CreateQiuzz(Quizz newQuizz)
 {
     using (EducationDBContext db = new EducationDBContext())
     {
         db.Quizzs.Add(newQuizz);
         db.SaveChanges();
     }
     return(RedirectToAction("Index", "Home"));
 }
 public ActionResult CreateLession(Lession newLession)
 {
     using (EducationDBContext db = new EducationDBContext())
     {
         db.Lessions.Add(newLession);
         db.SaveChanges();
     }
     return(RedirectToAction("Index", "Home"));
 }
 public ActionResult CreateSubject(Subject newSubject)
 {
     using (EducationDBContext db = new EducationDBContext())
     {
         db.Subjects.Add(newSubject);
         db.SaveChanges();
     }
     //dang loi o line 71 phan View khi get select item
     return(RedirectToAction("Index", "Home"));
 }
 public ActionResult BeforeTesting(int lessonId, int quizzId)
 {
     using (EducationDBContext db = new EducationDBContext())
     {
         var quizzDTO = AutoMap.Mapper.Map<QuizzDTO>((from qz in db.Quizzs where qz.Id == quizzId select qz).FirstOrDefault());
         quizzDTO.NumberQuestion = (from qs in db.Questions where qs.CurrentQuizzId == quizzDTO.Id select qs).Count();
         ViewBag.lessonId = lessonId;
         ViewBag.quizzId = quizzId;
         return View("Exam", quizzDTO);
     }
 }
        public ActionResult OnTesting(int quizzId)
        {
            using (EducationDBContext db = new EducationDBContext())
            {
                var lst = (from qs in db.Questions where qs.CurrentQuizzId == quizzId orderby qs.Id select qs).ToList();
                var lstDTO = AutoMap.Mapper.Map<List<QuestionsGivenDTO>>(lst);

                lstDTO.ForEach(o => o.Answers = AutoMap.Mapper.Map<List<AnswerDTO>>((from a in db.Answers where a.CurrentQuestionId == o.Id select a).ToList()));
                return Json(new { data = lstDTO }, JsonRequestBehavior.AllowGet);
            }
        }
        public ActionResult CreateCourse(Course newCourse)
        {
            using (EducationDBContext db = new EducationDBContext())
            {
                //get data then check data // then create and forward
                db.Courses.Add(newCourse);
                db.SaveChanges();
            }

            //forward value of id to create subject
            return(RedirectToAction("Index", "Home"));
        }
        public ActionResult ListSubject(string id, int pageNum)
        {
            using (EducationDBContext db = new EducationDBContext())
            {
                int code = int.Parse(id);
                var lst = (from s in db.Subjects where s.CurrentCourseId == code orderby s.Id select s).Skip((pageNum - 1) * 6).Take(6).Select(o => new SubjectDTO()
                {
                    Code = o.Code,
                    Describtion = o.Describtion,
                    Id = o.Id,
                    Name = o.Name,
                    Image = o.Image,
                    CurrentCourseId = o.CurrentCourseId
                }).ToArray();

                return Json(new { data = lst, courseId = id }, JsonRequestBehavior.AllowGet);

            }
        }
        public ActionResult Course(int? page)
        {
            using (EducationDBContext db = new EducationDBContext())
            {
                var lst = (from c in db.Courses orderby c.Name select c).Select(o => new CourseDTO()
                {
                    Code = o.Code,
                    Describtion = o.Describtion,
                    Id = o.Id,
                    Image = string.IsNullOrEmpty(o.Image) ? "~/Assets/images/quizz/quizz-logo-default.jpg" : o.Image,
                    rate = (o.rate.HasValue ? (((float)o.rate / 5.0) * 100) : 0) + "%",
                    total_rate = o.total_rate.HasValue ? o.total_rate : 0,
                    Name = o.Name
                });

                int pageSize = 6;
                int pageNumber = (page ?? 1);
                return View(lst.ToPagedList(pageNumber, pageSize));
            }
        }
        public ActionResult AfterExam(int id)
        {
            int userId = Convert.ToInt32(Session["id"]);
            using (EducationDBContext db = new EducationDBContext())
            {
                var quizzDTO = AutoMap.Mapper.Map<QuizzDTO>((from q in db.Quizzs where q.Id == id select q).FirstOrDefault());
                var point = AutoMap.Mapper.Map<PointAfterSubmitDTO>((from p in db.points where p.UserInfor.Id == userId && p.Quizz.Id == id select p).FirstOrDefault());
                QuizzResultDTO quizzResultDTO = new QuizzResultDTO()
                {
                    CorrectAnswer = point.CorrectAnswer,
                    Image = string.IsNullOrEmpty(quizzDTO.Image) ? "~/Assets/images/quizz/quizz_default.png" : quizzDTO.Image,
                    Id = quizzDTO.Id,
                    Level = quizzDTO.Level.HasValue ? quizzDTO.Level.Value : 0,
                    Name = quizzDTO.Name,
                    Score = point.Score,
                    time = quizzDTO.time
                };

                return View("AfterSubmit", quizzResultDTO);

            }
        }
Exemple #15
0
        public ActionResult Register(string name, string email, int mobile, string pass)
        {
            //moi lan tao moi la phai tao moi ca 2 bang
            using (EducationDBContext db = new EducationDBContext())
            {
                User principal = new User()
                {
                    Email    = email,
                    Password = pass,
                    Role     = 2,
                };

                UserInfor ui = new UserInfor()
                {
                    Name  = name,
                    Phone = mobile
                };
                ui.Id = db.Users.Add(principal).Id;
                db.UserInfors.Add(ui);
                db.SaveChanges();
                return(View("Contact"));
            }
        }
        public ActionResult AfterSubmit(List<AnswerOnSubmitDTO> data, int id, string time)
        {
            int userId = Convert.ToInt32(Session["id"]);
            int correctAns = 0;
            double pointTotalCorrect = 0;
            double pointTotal = 0;
            data = data != null ? data : new List<AnswerOnSubmitDTO>();
            PointAfterSubmitDTO pointAfter;
            List<ResultDTO> ResultDTO = new List<ResultDTO>();
            double timeQuizz;
            double timeRemaind;
            double timeDo;
            List<QuestionsGivenDTO> lstDTO= new List<QuestionsGivenDTO>();

            //data handle
            using (EducationDBContext db = new EducationDBContext())
            {

                //get list ques
                var lst = (from qs in db.Questions where qs.CurrentQuizzId == id orderby qs.Id select qs).ToList();
                 lstDTO = AutoMap.Mapper.Map<List<QuestionsGivenDTO>>(lst);

                //time handle
                string[] str = time.Split(':');
                timeQuizz = (from q in db.Quizzs where q.Id == id select q).First().time * 60*60;
                timeRemaind = int.Parse(str[0])*60 + int.Parse(str[1]);
                timeDo = timeQuizz - timeRemaind;
                int currentIdQues = -1;
                //check question
                foreach (AnswerOnSubmitDTO item in data)
                {
                    var ansCorrect = (from an in db.Answers where an.CurrentQuestionId == item.Ques && an.IsCorrect select an).First();
                    double? point = (from q in db.Questions where q.Id == item.Ques select q).FirstOrDefault().Point;
                    if(currentIdQues != item.Ques)
                    {
                        pointTotal += point.HasValue ? point.Value : 0;
                        currentIdQues = item.Ques;
                    }
                    if (ansCorrect.Id == item.Ans)
                    {
                        pointTotalCorrect += point.HasValue ? point.Value : 0;
                        correctAns += 1;
                    }
                    ResultDTO.Add(new ResultDTO()
                    {
                        AnsChoosed = item.Ans,
                        CorrectAns = ansCorrect.Id,
                        QuesId = item.Ques,
                        QuizzId = id,
                    });
                }
                UserInfor user = (from u in db.UserInfors where u.Id == userId select u).FirstOrDefault();
                Quizz quizz = (from q in db.Quizzs where q.Id == id select q).FirstOrDefault();
                pointAfter = new PointAfterSubmitDTO()
                {
                    Quizz = quizz,
                    Score = pointTotalCorrect,
                    UserInfor = user,
                    CorrectAnswer = correctAns
                };
                Point score = (from p in db.points where p.UserInfor.Id == userId && p.Quizz.Id == id select p).FirstOrDefault();
                if (score != null)
                {
                    score.CorrectAnswer = pointAfter.CorrectAnswer;
                    score.Quizz = pointAfter.Quizz;
                    score.Score = pointAfter.Score;
                    score.UserInfor = pointAfter.UserInfor;
                }
                else
                {
                    db.points.Add(AutoMap.Mapper.Map<Point>(pointAfter));
                }
                db.SaveChanges();
            }
            return Json(new
            {
                lisQues=lstDTO,
                data = ResultDTO,
                timetotal = timeQuizz,
                timeDo = timeDo,
                point= pointTotalCorrect,
                pointTotal= pointTotal
            },
            JsonRequestBehavior.AllowGet) ;
        }