예제 #1
0
        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));
        }
예제 #2
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));
        }