public ActionResult Index(Guid disciplineId) { if (!UserIsInRole("Professor")) { return(RedirectToAction("Index", "Home")); } var students = _studentQuery.Handle(new StudentInputListByDiscipline { DisciplineId = disciplineId }).Students; var exams = _activityQuery.Handle(new ExamInputGetByDiscipline { DisciplineId = disciplineId, Semester = new UseCases.Shared.Semester() }).Activities; if (exams.Count() == 0) { CreateExams(disciplineId); exams = _activityQuery.Handle(new ExamInputGetByDiscipline { DisciplineId = disciplineId, Semester = new UseCases.Shared.Semester() }).Activities; } var grades = new ExamListViewModel { DisciplineId = disciplineId, DisciplineName = exams.First().Discipline.Name }; foreach (var student in students) { var studentGrades = new Dictionary <string, decimal>(); foreach (var exam in exams) { var result = _activityEvaluationQuery.Handle(new ActivityInputGetByStudent { ActivityId = exam.Id, StudentId = student.Id }).Activity; decimal grade = 0; if (result == null) { _activityEvaluationCommand.Handle(new ActivityInputGiveGrade { ActivityId = exam.Id, Grade = 0, StudentId = student.Id, Value = exam.Value }); } else { grade = result.Grade; } studentGrades.Add(exam.Description, grade); } var item = new ExamListItem { Student = $"{student.FirstName} {student.LastName}", StudentId = student.Id, Exam1 = studentGrades.Single(x => x.Key == new Exam1(Guid.Empty).Description).Value, Exam2 = studentGrades.Single(x => x.Key == new Exam2(Guid.Empty).Description).Value, Exam3 = studentGrades.Single(x => x.Key == new Exam3(Guid.Empty).Description).Value, FinalExam = studentGrades.Single(x => x.Key == new FinalExam(Guid.Empty).Description).Value }; grades.Students.Add(item); } return(View(grades)); }
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)); }