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))); } }
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); }
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)); }
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); }
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)); }
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); }
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); }
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)); }
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); }
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); }
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)); }
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); }
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(); } } } }
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); } } }
public StudentSubjectJoin(StudentToSubject studentToSubject, Models.Subject subject) { this.StudentId = studentToSubject.StudentId; this.Grade = studentToSubject.Grade; this.Subject = subject; }