コード例 #1
0
        public IHttpActionResult RemoveSubjectFromStudent(string studentId, int subjectId)
        {
            Student student = studentsService.GetById(studentId);

            if (student == null || subjectsService.GetById(subjectId) == null)
            {
                return(NotFound());
            }

            try
            {
                if (!student.StudentAttendsSubject.Select(x => x.Subject.SubjectId).Contains(subjectId))
                {
                    throw new NullReferenceException("Student is not attending this subject! Nothing to remove.");
                }
                else
                {
                    logger.Info("Removing subject from student");

                    StudentToSubject studentSubject = studentsService.RemoveSubjectStudentPair(studentId, subjectId);
                    return(Ok(studentSubject));
                }
            }
            catch (NullReferenceException e)
            {
                logger.Error(e.Message, "Removing subject from student");
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e.Message)));
            }
        }
コード例 #2
0
ファイル: StudentsService.cs プロジェクト: zlajas/ESchool_BE
        public StudentToSubject RemoveSubjectStudentPair(string studentId, int subjectId)
        {
            Student student = db.StudentRepository.GetByID(studentId);
            Subject subject = db.SubjectRepository.GetByID(subjectId);

            StudentToSubject studentSubject = student.StudentAttendsSubject.FirstOrDefault(x => x.Student == student && x.Subject == subject);

            db.StudentSubjectRepository.Delete(studentSubject);

            db.Save();
            return(studentSubject);
        }
コード例 #3
0
        public StudentInfoDTO DeleteSubjectFromStudent(string id, int subjectId)
        {
            StudentModel     StudentFromDB = db.StudentsRepository.GetByID(id.ToString());
            SubjectModel     SubjectFromDB = db.SubjectsRepository.GetByID(subjectId);
            StudentToSubject sts           = db.StudentToSubjectsRepository.Get().FirstOrDefault(x => x.Student == StudentFromDB && x.Subject == SubjectFromDB);

            StudentFromDB.StudentToSubjects.Remove(sts);
            db.StudentsRepository.Update(StudentFromDB);
            db.Save();

            logger.Info($"Subject with id: {subjectId} ({SubjectFromDB.SubjectName}) was removed from student with id: {id} ({StudentFromDB.FirstName} {StudentFromDB.LastName} with username: {StudentFromDB.UserName})");

            return(MakeStudentInfoDTO(StudentFromDB));
        }
コード例 #4
0
ファイル: StudentsService.cs プロジェクト: zlajas/ESchool_BE
        public Student AddTeacherToStudentSubject(string studentId, int subjectId, string teacherId)
        {
            Student student = db.StudentRepository.GetByID(studentId);
            Subject subject = db.SubjectRepository.GetByID(subjectId);
            Teacher teacher = db.TeacherRepository.GetByID(teacherId);

            StudentToSubject studentSubject = student.StudentAttendsSubject.FirstOrDefault(x => x.Student == student && x.Subject == subject);
            TeacherToSubject teacherSubject = teacher.TeacherTeachesSubject.FirstOrDefault(x => x.Teacher == teacher && x.Subject == subject);

            studentSubject.TacherTeachesSubject = teacherSubject;

            db.StudentSubjectRepository.Update(studentSubject);
            db.Save();
            return(student);
        }
コード例 #5
0
        public StudentInfoDTO PostGradeToStudent(string studentId, int subjectId, Grade grade)
        {
            StudentModel studentFromDB = db.StudentsRepository.GetByID(studentId);
            SubjectModel subjectFromDB = db.SubjectsRepository.GetByID(subjectId);

            StudentToSubject sts = db.StudentToSubjectsRepository.Get().FirstOrDefault(x => x.Student == studentFromDB && x.Subject == subjectFromDB);

            sts.Grades.Add(grade);
            db.StudentToSubjectsRepository.Update(sts);
            db.Save();

            SendEmailToParents(studentId, subjectId, grade);

            logger.Info($"Grade {grade.GradeValue} was posted to student {studentFromDB.FirstName} {studentFromDB.LastName} for subject {subjectFromDB.SubjectName}");
            return(studentsService.MakeStudentInfoDTO(studentFromDB));
        }
コード例 #6
0
        private List <StudentSubjectJoin> GetSubjectList(int studetnId, IEnumerable <Subject> subjects)
        {
            var subjectList = new List <StudentSubjectJoin>();

            foreach (var subject in subjects)
            {
                var grade            = random.Next(9) + 1;
                var studentToSubject = new StudentToSubject {
                    StudentId = studetnId,
                    Grade     = grade,
                    SubjectId = subject.Id
                };
                subjectList.Add(new StudentSubjectJoin(studentToSubject, subject));
            }

            return(subjectList);
        }
コード例 #7
0
        public StudentModel PostGradeToStudent(string id, string studentId, int subjectId, Grade grade)
        {
            TeacherModel teacher = db.TeachersRepository.GetByID(id);
            StudentModel student = db.StudentsRepository.GetByID(studentId);
            SubjectModel subject = db.SubjectsRepository.GetByID(subjectId);

            StudentToSubject sts = db.StudentToSubjectsRepository.Get().FirstOrDefault(x => x.Student == student && x.Subject == subject && x.TeacherToSubject.Teacher == teacher);

            sts.Grades.Add(grade);

            db.StudentToSubjectsRepository.Update(sts);
            db.Save();

            logger.Info($"Student with id {studentId} got new grade ({grade.GradeValue}) from subject {subject.SubjectName}. Teacher {teacher.FirstName} {teacher.LastName} gave that grade");

            return(student);
        }
コード例 #8
0
        public StudentInfoDTO PutSubjectToStudent(string Id, int subjectId)
        {
            StudentModel     StudentFromDB = db.StudentsRepository.GetByID(Id);
            SubjectModel     sub           = db.SubjectsRepository.GetByID(subjectId);
            StudentToSubject sts           = new StudentToSubject()
            {
                Student = StudentFromDB,
                Subject = sub
            };

            StudentFromDB.StudentToSubjects.Add(sts);
            db.StudentsRepository.Update(StudentFromDB);
            db.Save();

            logger.Info($"Student with id: {Id} ({StudentFromDB.FirstName} {StudentFromDB.LastName}, with username: {StudentFromDB.UserName}) received new subject with id: {subjectId} ({sub.SubjectName})");

            return(MakeStudentInfoDTO(StudentFromDB));
        }
コード例 #9
0
ファイル: StudentsService.cs プロジェクト: zlajas/ESchool_BE
        public Student AddSubjectToStudent(string studentId, int subjectId)
        {
            Student student = db.StudentRepository.GetByID(studentId);
            Subject subject = db.SubjectRepository.GetByID(subjectId);

            StudentToSubject subjectToStudent = new StudentToSubject();

            if (student.StudentAttendsSubject.Select(x => x.Subject).Contains(subject))
            {
            }

            subjectToStudent.Student = student;
            subjectToStudent.Subject = subject;

            student.StudentAttendsSubject.Add(subjectToStudent);

            db.Save();
            return(student);
        }
コード例 #10
0
        public bool TeacherHasStudent(string id, string studentId, int subjectId)
        {
            TeacherModel TeacherFromDB = db.TeachersRepository.GetByID(id);
            SubjectModel SubjectFromDB = db.SubjectsRepository.GetByID(subjectId);
            StudentModel StudentFromDB = db.StudentsRepository.GetByID(studentId);

            if (TeacherHasSubject(id, subjectId) == false || studentsService.StudentHasSubject(studentId, subjectId) == false)
            {
                return(false);
            }

            StudentToSubject sts = db.StudentToSubjectsRepository.Get()
                                   .FirstOrDefault(x => x.Student.Id == StudentFromDB.Id && x.Subject.Id == SubjectFromDB.Id && x.TeacherToSubject.Teacher.Id == TeacherFromDB.Id);

            if (sts == null)
            {
                return(false);
            }

            return(true);
        }
コード例 #11
0
        public TeacherInfoDTO PutStudentToTeacher(string id, string studentId, int subjectId)
        {
            TeacherModel TeacherFromDB = db.TeachersRepository.GetByID(id);
            StudentModel StudentFromDB = db.StudentsRepository.GetByID(studentId);
            SubjectModel SubjectFromDB = db.SubjectsRepository.GetByID(subjectId);

            TeacherToSubject tts = db.TeacherToSubjectsRepository.Get().FirstOrDefault(x => x.Teacher == TeacherFromDB && x.Subject == SubjectFromDB);
            StudentToSubject sts = db.StudentToSubjectsRepository.Get().FirstOrDefault(x => x.Student == StudentFromDB && x.Subject == SubjectFromDB);

            sts.TeacherToSubject = tts;

            sts.TeacherToSubject.Teacher   = tts.Teacher;
            sts.TeacherToSubject.TeacherId = tts.Teacher.Id;
            sts.TeacherToSubject.Subject   = tts.Subject;
            sts.TeacherToSubject.SubjectId = tts.Subject.Id;

            db.StudentToSubjectsRepository.Update(sts);
            db.Save();

            logger.Info($"Student with id {id} ({StudentFromDB.FirstName} {StudentFromDB.LastName}) changed teacher on subject {SubjectFromDB.SubjectName}." +
                        $"Teacher that now teaches that student has id: {id} ({TeacherFromDB.FirstName} {TeacherFromDB.LastName})");

            return(MakeTeacherInfoDTO(TeacherFromDB));
        }
コード例 #12
0
ファイル: TeachersService.cs プロジェクト: zlajas/ESchool_BE
        public Mark AddMarkToStudent(string studentId, int subjectId, string teacherId, int markValue)
        {
            TeacherToSubject subjectToTeacher = new TeacherToSubject();
            StudentToSubject studentToSubject = new StudentToSubject();

            Teacher teacher = db.TeacherRepository.GetByID(teacherId);
            Student student = db.StudentRepository.GetByID(studentId);
            Subject subject = db.SubjectRepository.GetByID(subjectId);
            Mark    newMark = new Mark();

            newMark.MarkDate        = DateTime.Now;
            newMark.MarkValue       = markValue;
            newMark.SemesterEndMark = false;
            db.MarkRepository.Insert(newMark);


            teacher.TeacherTeachesSubject.FirstOrDefault(x => x.Teacher == teacher && x.Subject == subject).StudentsAttendSubjects.FirstOrDefault(y => y.Subject == subject && y.Student == student).Marks.Add(newMark);

            db.Save();

            SendMail(student, subject, teacher, newMark);

            return(newMark);
        }
コード例 #13
0
ファイル: StudentsService.cs プロジェクト: zlajas/ESchool_BE
        public void SpecialAddSubjectToStudent()
        {
            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2011, 1, 1) && student.DateOfBirth <= new DateTime(2011, 12, 31) && subject.Grade == EGradeYear.FIRST)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2010, 1, 1) && student.DateOfBirth <= new DateTime(2010, 12, 31) && subject.Grade == EGradeYear.SECOND)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2009, 1, 1) && student.DateOfBirth <= new DateTime(2009, 12, 31) && subject.Grade == EGradeYear.THIRD)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2008, 1, 1) && student.DateOfBirth <= new DateTime(2008, 12, 31) && subject.Grade == EGradeYear.FOURTH)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2007, 1, 1) && student.DateOfBirth <= new DateTime(2007, 12, 31) && subject.Grade == EGradeYear.FIFTH)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2006, 1, 1) && student.DateOfBirth <= new DateTime(2006, 12, 31) && subject.Grade == EGradeYear.SIXTH)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2005, 1, 1) && student.DateOfBirth <= new DateTime(2005, 12, 31) && subject.Grade == EGradeYear.SEVENTH)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }

            foreach (Student student in db.StudentRepository.Get())
            {
                foreach (Subject subject in db.SubjectRepository.Get())
                {
                    if (student.DateOfBirth >= new DateTime(2004, 1, 1) && student.DateOfBirth <= new DateTime(2004, 12, 31) && subject.Grade == EGradeYear.EIGHTH)
                    {
                        StudentToSubject studentSubject = new StudentToSubject();
                        studentSubject.Student = student;
                        studentSubject.Subject = subject;
                        student.StudentAttendsSubject.Add(studentSubject);
                        db.Save();
                    }
                }
            }
        }
コード例 #14
0
 private void SetYearAndSubjects(StudentModel student, DateTime DateOfBirth)
 {
     if (DateOfBirth >= new DateTime(2011, 1, 1) && DateOfBirth <= new DateTime(2011, 12, 31))
     {
         student.Year = EYear.First;
         List <SubjectModel> OkSubjects = db.SubjectsRepository.Get(x => x.Year == EYear.First).ToList();
         foreach (SubjectModel subject in OkSubjects)
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2010, 1, 1) && DateOfBirth <= new DateTime(2010, 12, 31))
     {
         student.Year = EYear.Second;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Second))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2009, 1, 1) && DateOfBirth <= new DateTime(2009, 12, 31))
     {
         student.Year = EYear.Third;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Third))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2008, 1, 1) && DateOfBirth <= new DateTime(2008, 12, 31))
     {
         student.Year = EYear.Fourth;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Fourth))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2007, 1, 1) && DateOfBirth <= new DateTime(2007, 12, 31))
     {
         student.Year = EYear.Fifrh;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Fifrh))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2006, 1, 1) && DateOfBirth <= new DateTime(2006, 12, 31))
     {
         student.Year = EYear.Sixth;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Sixth))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2005, 1, 1) && DateOfBirth <= new DateTime(2005, 12, 31))
     {
         student.Year = EYear.Seventh;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Seventh))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
     else if (DateOfBirth >= new DateTime(2004, 1, 1) && DateOfBirth <= new DateTime(2004, 12, 31))
     {
         student.Year = EYear.Eight;
         foreach (SubjectModel subject in db.SubjectsRepository.Get(x => x.Year == EYear.Eight))
         {
             StudentToSubject sts = new StudentToSubject()
             {
                 Student = student,
                 Subject = subject,
             };
             student.StudentToSubjects.Add(sts);
             subject.StudentToSubjects.Add(sts);
         }
     }
 }
コード例 #15
0
 public StudentSubjectJoin(StudentToSubject studentToSubject, Models.Subject subject)
 {
     this.StudentId = studentToSubject.StudentId;
     this.Grade     = studentToSubject.Grade;
     this.Subject   = subject;
 }