public async Task <ActionResult <StudentQuiz> > Post(StudentQuiz StudentQuiz) { _db.StudentQuizs.Update(StudentQuiz); await _db.SaveChangesAsync(); return(CreatedAtAction(nameof(GetSingle), new { id = StudentQuiz.Id }, StudentQuiz)); }
//QUIZ PAGE FUNCTIONS public void PublishQuiz(string quizName, string name) { using (var db = new QuizBucketContext()) { if (quizName != null) { var selectedQuiz = db.Quizzes.Where(q => q.QuizName == quizName).FirstOrDefault(); var assignedStudents = from teacher in db.Teachers join studentTeacher in db.StudentTeachers on teacher.TeacherId equals studentTeacher.TeacherId join student in db.Students on studentTeacher.StudentId equals student.StudentId where teacher.TeacherName == name select student.StudentId; foreach (var item in assignedStudents) { var AssignQuiz = new StudentQuiz { QuizId = selectedQuiz.QuizId, StudentId = item }; db.StudentQuizzes.Add(AssignQuiz); } db.SaveChanges(); } //else if (quizName == null) //{ // throw new Exception("Please select a quiz to publish."); //} } }
public async Task <bool> UpdateStudentQuiz(StudentQuiz studentQuiz) { using (var context = new AssessmentToolContext()) { context.Entry(studentQuiz).State = System.Data.Entity.EntityState.Modified; return(await context.SaveChangesAsync() > 0); } }
public async Task <bool> NewStudentQuiz(StudentQuiz studentQuiz) { using (var context = new AssessmentToolContext()) { context.StudentQuizzes.Add(studentQuiz); return(await context.SaveChangesAsync() > 0); } }
public async Task <IActionResult> Put(long id, StudentQuiz StudentQuiz) { if (id != StudentQuiz.Id) { return(BadRequest()); } _db.Entry(StudentQuiz).State = EntityState.Modified; await _db.SaveChangesAsync(); return(NoContent()); }
private void BarCodeScanner(StudentQuiz SQ) { System.Diagnostics.Debug.WriteLine(SQ.Id); /* var mainView = (MainView)Application.Current.MainPage; * var loginPage = (NavigationPage)mainView.Detail; * * var LoginView = loginPage.CurrentPage as * LoginView; * if (LoginView == null) * { * LoginView = new LoginView(); * * await loginPage.PushAsync(LoginView); * }*/ }
public async Task <ActionResult> Attempt(AttemptQuizViewModel model) { var quiz = QuizzesService.Instance.GetQuiz(model.QuizID); if (quiz == null) { return(HttpNotFound()); } StudentQuiz studentQuiz = new StudentQuiz(); studentQuiz.StudentID = User.Identity.GetUserId(); studentQuiz.QuizID = quiz.ID; studentQuiz.StartedAt = DateTime.Now; studentQuiz.ModifiedOn = DateTime.Now; if (await StudentQuizzesService.Instance.NewStudentQuiz(studentQuiz)) { model.QuizType = quiz.QuizType; model.StudentQuizID = studentQuiz.ID; model.TotalQuestions = quiz.Questions.Count; model.Question = quiz.Questions.FirstOrDefault(); model.QuestionIndex = 0; model.Options = new List <Option>(); model.Options.AddRange(model.Question.Options); model.Options.Shuffle(); model.EnableQuestionTimer = quiz.EnableQuestionTimer; model.Seconds = Calculator.CalculateAllowedQuestionTime(quiz); return(PartialView("_QuizQuestion", model)); } else { return(new HttpStatusCodeResult(500)); } }
public ActionResult CalculateMarks(int[] Choices, List <Question> question, int quizId) { var quiz = new StudentQuiz(); var store = new UserStore <ApplicationUser>(db); var userManager = new UserManager <ApplicationUser>(store); quiz.Student = userManager.FindByNameAsync(User.Identity.Name).Result; quiz.StudentId = User.Identity.GetUserId(); int i = 0; int totalMarks = db.Quiz.Where(x => x.QuizId == quizId).Single().Score; double marksPerQuestion = totalMarks / question.Count(); double obtainedMarks = 0; foreach (var item in question) { var q = db.Questions.Include(y => y.AnswerChoices).Where(x => x.QuestionId == item.QuestionId).Single(); foreach (var choice in q.AnswerChoices) { if (choice.IsCorrect == true) { if (Choices[i] == choice.AnswerChoiceId) { obtainedMarks += marksPerQuestion; } } } i++; } quiz.QuizId = quizId; quiz.Quiz = db.Quiz.Where(x => x.QuizId == quizId).Single(); quiz.Marks = obtainedMarks; db.StudentQuiz.Add(quiz); db.SaveChanges(); ViewData["marks"] = obtainedMarks; return(View()); }
public ActionResult TakeQuiz(List <QuizTakingVM> examTakingModels, int?quizId) { if (quizId == null) { return(HttpNotFound()); } var quiz = new StudentQuiz(); var store = new UserStore <ApplicationUser>(db); var userManager = new UserManager <ApplicationUser>(store); quiz.Student = userManager.FindByNameAsync(User.Identity.Name).Result; quiz.StudentId = User.Identity.GetUserId(); int totalMarks = db.Quiz.Where(x => x.QuizId == quizId).Single().Score; double marksPerQuestion = totalMarks / examTakingModels.Count(); double obtainedMarks = 0; foreach (var examModel in examTakingModels) { if (examModel.Question.AnswerChoices.Where(ans => ans.AnswerChoiceId == examModel.Choice).SingleOrDefault().IsCorrect == true) { obtainedMarks += marksPerQuestion; } } quiz.QuizId = quizId.Value; quiz.Quiz = db.Quiz.Where(x => x.QuizId == quizId).Single(); quiz.Marks = obtainedMarks; db.StudentQuiz.Add(quiz); db.SaveChanges(); ViewData["marks"] = obtainedMarks; return(RedirectToAction("QuizHistory")); }
public async Task <ActionResult> Attempt(AttemptQuizViewModel model) { var quiz = await db.Quizzes.FindAsync(model.QuizID); if (quiz == null || !quiz.IsActive) { return(HttpNotFound()); } if (quiz.Questions.Count == 0) { return(HttpNotFound()); } StudentQuiz studentQuiz = new StudentQuiz(); studentQuiz.StudentID = User.Identity.GetUserId(); studentQuiz.Quiz = quiz; studentQuiz.StartedAt = DateTime.Now; studentQuiz.IsActive = true; studentQuiz.ModifiedOn = DateTime.Now; db.StudentQuizzes.Add(studentQuiz); await db.SaveChangesAsync(); model.StudentQuizID = studentQuiz.ID; model.TotalQuestions = quiz.Questions.Count; model.Question = quiz.Questions.Where(q => q.IsActive).FirstOrDefault(); model.QuestionIndex = 0; model.Options = new List <Option>(); model.Options.AddRange(model.Question.Options.Where(q => q.IsActive)); model.Options.Shuffle(); return(PartialView("QuizQuestion", model)); }
public ActionResult TakeQuiz(int id) { var quiz = _context.TQuizz.Include(r => r.Questions).FirstOrDefault(q => q.QuizId == id); var userId = User.Identity.GetUserId(); if (quiz == null || userId == null) { return(RedirectToAction("Index", "Home")); } var checkIfExits = _context.TStudentQuiz.FirstOrDefault(r => r.StudentId == userId && r.QuizId == quiz.QuizId); if (checkIfExits != null) { return(RedirectToAction("Index", "Home")); } else { var LoadQuiz = new StudentQuiz() { QuizId = quiz.QuizId, StudentId = userId, StartTime = DateTime.Now }; _context.TStudentQuiz.Add(LoadQuiz); _context.SaveChanges(); var listQuiz = new List <StudentQuizQuestion>(); var questions = quiz.Questions; foreach (var q in questions) { var addQuestion = new StudentQuizQuestion { StudentQuizId = LoadQuiz.StudentQuizId, QuestionId = q.QuestionId }; listQuiz.Add(addQuestion); _context.TStudentQuizQuestion.Add(addQuestion); _context.SaveChanges(); } // random listQuiz Random random = new Random(); var ListaRandom = listQuiz.OrderBy(x => random.Next()).ToList(); for (int i = 0; i < ListaRandom.Count; i++) { try { ListaRandom[i].NextStudentQuestionId = ListaRandom[i + 1].StudentQuizQuestionId; } catch (ArgumentOutOfRangeException) { //expected exception } } _context.SaveChanges(); return(RedirectToAction("QuizQuestion", new { id = ListaRandom.First().StudentQuizQuestionId })); } }