Esempio n. 1
0
        public ActionResult GetNextQuestion(GetNextQuestionViewModel vm)
        {
            //add coding
            QuestionCoding coding = new QuestionCoding()
            {
                AuthorStudentId = vm.StudentId,
                PostId          = vm.Post.Id,
                IsQuestion      = vm.IsQuestion,
            };

            Db.QuestionCodings.Add(coding);

            //update response count
            QuestionResponseCount count = Db.QuestionResponseCounts.Where(c => c.ContentId == vm.Post.Id).FirstOrDefault();

            count.Count++;
            Db.Entry(count).State = System.Data.Entity.EntityState.Modified;
            Db.SaveChanges();
            return(RedirectToAction("GetNextQuestion", new { studentId = vm.StudentId }));
        }
Esempio n. 2
0
        public ActionResult GetNextQuestion(int studentId)
        {
            var answeredQuestionsQuery = (from question in Db.QuestionCodings
                                          where question.AuthorStudentId == studentId
                                          select question.PostId).ToList();

            var findQuestionQuery = (from question in Db.QuestionResponseCounts
                                     where answeredQuestionsQuery.Contains(question.Id) == false
                                     orderby question.Count ascending
                                     select question).Take(1);
            var toFind = findQuestionQuery.FirstOrDefault();
            var post   = (from question in Db.Posts
                          where question.Id == toFind.ContentId
                          select question).FirstOrDefault();
            GetNextQuestionViewModel vm = new GetNextQuestionViewModel()
            {
                Post      = post,
                StudentId = studentId
            };

            return(View(vm));
        }