public IActionResult AddExamSession(ExamSessionViewModel model)
        {
            if (ModelState.IsValid)
            {
                var optionsBuilder = new DbContextOptionsBuilder <AppDbContext>();
                var unitOfWork     = new UnitOfWork(new AppDbContext(optionsBuilder.Options));

                //if (true/*(model.Start < DateTime.Now) || (model.End < DateTime.Now) || (model.Start > model.End)*/)
                //{
                //    ViewBag.Error = $"La de début doit etre inférieur à la date de fin";
                //    return View(model);
                //}

                var examSession = new ExamSession();
                examSession.Start       = model.Start ?? default(DateTime);
                examSession.End         = model.End ?? default(DateTime);
                examSession.Name        = model.Name;
                examSession.Description = model.Description;
                examSession.IsActive    = true;

                unitOfWork.ExamSessions.Add(examSession);

                unitOfWork.Complete();

                TempData["Message"] = "La session a été enregistrer avec succès";
                return(RedirectToAction("AddExamSession"));;
            }
            return(View(model));
        }
        public IActionResult AddExamSession()
        {
            var model = new ExamSessionViewModel();

            ViewBag.Message     = TempData["Message"]?.ToString();
            TempData["Message"] = "";
            model.Start         = DateTime.Now;
            model.End           = DateTime.Now;
            return(View(model));
        }
Exemple #3
0
        public async Task <IActionResult> GetSession(int id)
        {
            if (id < 1)
            {
                return(BadRequest("Invalid exam id."));
            }

            AppUser user = await _usermanager.GetUserAsync(User);

            var exam = _repos.Exams.GetWith(id, "Sessions");

            if (exam == null)
            {
                return(NotFound("Exam record with that id does not exist."));
            }

            var session = exam.Sessions
                          .FirstOrDefault(x => x.StudentId == user.AccountId);

            if (session == null)
            {
                session = new ExamSession()
                {
                    ExamId    = exam.Id,
                    StudentId = user.AccountId
                };

                session = _repos.ExamSessions.Create(session);
                exam.Sessions.Add(session);
                exam = _repos.Exams.Update(exam);
                _repos.Commit();
            }

            var examViewModel = _dataManager.GetExam(id);
            var examSession   = new ExamSessionViewModel()
            {
                Id             = session.Id,
                SessionId      = session.SessionId,
                TotalQuestions = examViewModel.Questions.Count,
                TotalMarks     = examViewModel.Questions.Sum(x => x.Marks),
                Exam           = examViewModel
            };

            return(Ok(examSession));
        }