Пример #1
0
        public async Task EditExamAsyncShouldEditCorrectly()
        {
            var newName           = "New Exam Name";
            var newDescription    = "This is a new exam description.";
            var newQuestionsCount = 10;
            var newQuestionsOrder = OrderType.Random;
            var newChoicesOrder   = OrderType.Random;

            var exam = await this.CreateExamAsync();

            var editExamViewModel = new EditExamViewModel
            {
                Id             = exam.Id,
                Name           = newName,
                Description    = newDescription,
                QuestionsCount = newQuestionsCount,
                QuestionsOrder = newQuestionsOrder,
                ChoicesOrder   = newChoicesOrder,
            };

            await this.Service.EditExamAsync(editExamViewModel);

            var editedExam = await this.DbContext.Exams.FirstOrDefaultAsync(x => x.Id == exam.Id);

            Assert.Equal(newName, editedExam.Name);
            Assert.Equal(newDescription, editedExam.Description);
            Assert.Equal(newQuestionsCount, editedExam.QuestionsCount);
            Assert.Equal(newQuestionsOrder, editedExam.QuestionsOrder);
            Assert.Equal(newChoicesOrder, editedExam.ChoicesOrder);
        }
Пример #2
0
        public async Task <IActionResult> Edit(EditExamViewModel viewModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(viewModel));
            }

            await this.examsService.EditExamAsync(viewModel);

            return(this.RedirectToAction("Details", "Exams", new { id = viewModel.Id }));
        }
Пример #3
0
        public ActionResult GiveGrade(EditExamViewModel exam)
        {
            if (!UserIsInRole("Professor"))
            {
                return(RedirectToAction("Index", "Home"));
            }
            var exams = _activityQuery.Handle(new ExamInputGetByDiscipline {
                DisciplineId = exam.DisciplineId, Semester = new UseCases.Shared.Semester()
            }).Activities;
            var result1 = _activityEvaluationCommand.Handle(new ActivityInputUpdateGrade {
                Grade = Convert.ToDecimal(exam.Exam1.Replace(".", ",")), StudentId = exam.StudentId, Value = exams.Single(x => x.Description == new Exam1(Guid.Empty).Description).Value, ActivityId = exams.Single(x => x.Description == new Exam1(Guid.Empty).Description).Id
            });
            var result2 = _activityEvaluationCommand.Handle(new ActivityInputUpdateGrade {
                Grade = Convert.ToDecimal(exam.Exam2.Replace(".", ",")), StudentId = exam.StudentId, Value = exams.Single(x => x.Description == new Exam2(Guid.Empty).Description).Value, ActivityId = exams.Single(x => x.Description == new Exam2(Guid.Empty).Description).Id
            });
            var result3 = _activityEvaluationCommand.Handle(new ActivityInputUpdateGrade {
                Grade = Convert.ToDecimal(exam.Exam3.Replace(".", ",")), StudentId = exam.StudentId, Value = exams.Single(x => x.Description == new Exam3(Guid.Empty).Description).Value, ActivityId = exams.Single(x => x.Description == new Exam3(Guid.Empty).Description).Id
            });
            var result4 = _activityEvaluationCommand.Handle(new ActivityInputUpdateGrade {
                Grade = Convert.ToDecimal(exam.FinalExam.Replace(".", ",")), StudentId = exam.StudentId, Value = exams.Single(x => x.Description == new FinalExam(Guid.Empty).Description).Value, ActivityId = exams.Single(x => x.Description == new FinalExam(Guid.Empty).Description).Id
            });

            if (!(result1.IsValid && result2.IsValid && result3.IsValid && result4.IsValid))
            {
                foreach (var n in result1.Notifications)
                {
                    ModelState.AddModelError("Exam1", n.Value);
                }
                foreach (var n in result2.Notifications)
                {
                    ModelState.AddModelError("Exam2", n.Value);
                }
                foreach (var n in result3.Notifications)
                {
                    ModelState.AddModelError("Exam3", n.Value);
                }
                foreach (var n in result4.Notifications)
                {
                    ModelState.AddModelError("FinalExam", n.Value);
                }
                return(View(exam));
            }
            return(RedirectToAction("Index", new { disciplineId = exam.DisciplineId }));
        }
Пример #4
0
        public async Task EditExamAsync(EditExamViewModel model)
        {
            var exam = await this.examRepository.All()
                       .FirstOrDefaultAsync(x => x.Id == model.Id);

            if (exam == null)
            {
                throw new ArgumentException("There is no exam with this id.");
            }

            exam.Name           = model.Name;
            exam.Description    = model.Description;
            exam.QuestionsCount = model.QuestionsCount;
            exam.QuestionsOrder = model.QuestionsOrder;
            exam.ChoicesOrder   = model.ChoicesOrder;

            this.examRepository.Update(exam);
            await this.examRepository.SaveChangesAsync();
        }
Пример #5
0
        public async Task <IActionResult> Edit(string id)
        {
            var exam = await this.examsService.GetExamByIdAsync(id);

            var user = await this.userManager.GetUserAsync(this.HttpContext.User);

            await this.examsService.CheckForPermissions(exam, user);

            this.ViewData["CourseName"] = exam.Course.Name;

            var viewModel = new EditExamViewModel
            {
                Id             = exam.Id,
                Name           = exam.Name,
                Description    = exam.Description,
                QuestionsCount = exam.QuestionsCount,
                QuestionsOrder = exam.QuestionsOrder,
                ChoicesOrder   = exam.ChoicesOrder,
            };

            return(this.View(viewModel));
        }
Пример #6
0
        public ActionResult GiveGrade(ExamListItem exam, Guid disciplineId)
        {
            if (!UserIsInRole("Professor"))
            {
                return(RedirectToAction("Index", "Home"));
            }
            var student = _studentQuery.Handle(new StudentInputGetById {
                StudentId = exam.StudentId
            }).Student;
            var _exam = new EditExamViewModel
            {
                DisciplineId = disciplineId,
                StudentId    = exam.StudentId,
                Student      = $"{student.FirstName} {student.LastName}",
                Exam1        = exam.Exam1.ToString().Replace(".", ","),
                Exam2        = exam.Exam2.ToString().Replace(".", ","),
                Exam3        = exam.Exam3.ToString().Replace(".", ","),
                FinalExam    = exam.FinalExam.ToString().Replace(".", ",")
            };

            return(View(_exam));
        }