Exemplo n.º 1
0
        public MarkBll EditMark(StudentBll student, int grade, TeachersWorkloadBll teachersWorkload)
        {
            Student          stud = mapper.Map <Student>(student);
            TeachersWorkload tw   = mapper.Map <TeachersWorkload>(teachersWorkload);
            Mark             mark = db.Marks.Get(m => (m.Student.Id == student.Id) && (m.TeachersWorkload.Id == teachersWorkload.Id)).SingleOrDefault();
            MarkBll          markBll;

            if (mark == null)
            {
                try
                {
                    markBll = AddMark(grade, stud, tw, true);
                }
                catch
                {
                    return(null);
                }
            }
            else
            {
                try
                {
                    markBll = EditMark(mark, grade);
                }
                catch
                {
                    return(null);
                }
            }
            return(markBll);
        }
Exemplo n.º 2
0
        public TeachersWorkloadBll AddWorkload(int teacherId, int subjectId, int groupId, int term)
        {
            if (teacherId < 1)
            {
                throw new ArgumentException("TeacherId is invalid", "teacherId");
            }
            if (subjectId < 1)
            {
                throw new ArgumentException("SubjectId is invalid", "subjectId");
            }
            if (groupId < 1)
            {
                throw new ArgumentException("GroupId is invalid", "groupId");
            }
            if ((term < 1) || (term > 12))
            {
                throw new ArgumentException("Term is invalid", "term");
            }

            Teacher teacher = db.Teachers.Get(t => t.Id == teacherId).SingleOrDefault();
            Subject subject = db.Subjects.Get(s => s.Id == subjectId).SingleOrDefault();
            Group   group   = db.Groups.Get(g => g.Id == groupId).SingleOrDefault();

            TeachersWorkload workload = new TeachersWorkload()
            {
                Teacher = teacher ?? throw new ArgumentException("Teacher was not found", "teacherId"),
                                Group = group ?? throw new ArgumentException("Group was not found", "groupId"),
                                              Subject = subject ?? throw new ArgumentException("Subject was not found", "subjectId"),
                                                              Term = term
            };

            if (db.TeachersWorkloads.Get(tw => (tw.Teacher.Id == teacherId) &&
                                         (tw.Subject.Id == subjectId) &&
                                         (tw.Group.Id == groupId) &&
                                         (tw.Term == term)).Any())
            {
                throw new InvalidOperationException("This  teacher workload is already exists");
            }


            db.TeachersWorkloads.Add(workload);
            db.Save();
            TeachersWorkloadBll workloadBll = mapper.Map <TeachersWorkloadBll>(workload);

            return(workloadBll);
        }
Exemplo n.º 3
0
        public MarkBll EditMarkByCurrentTeacher(int studentId, int subjectId, int term, int grade)
        {
            if ((term < 1) || (term > 12))
            {
                throw new ArgumentException("Term is not valid", "term");
            }
            if ((grade < 0) || (grade > 5))
            {
                throw new ArgumentException("Grade is not valid", "grade");
            }
            StudentBll student = mapper.Map <StudentBll>(db.Students.Get(st => st.Id == studentId).SingleOrDefault());

            if (student == null)
            {
                throw new ArgumentException("Student not found", "studentId");
            }
            TeachersWorkloadBll tws = GetTWOfCurrentTeacher().Where(tw => (tw.Subject.Id == subjectId) &&
                                                                    (tw.Group.Id == student.Group.Id) &&
                                                                    (tw.Term == term))
                                      .SingleOrDefault();
            MarkBll mark = markService.EditMark(student, grade, tws);

            return(mark);
        }