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); }
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 })); }
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 })); }
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(); }
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)); }
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)); }