public IActionResult AddSubject() { int courseId = this.GetRouteId(); var courseSubjectTeachersForCourse = this.courseSubjectTeacherService.GetAllSubjectsTeachersForCourse(courseId); var subjectTeachers = this.subjectTeachersService.GetAllSubjectTeachersNotInCourse <SubjectTeachersDropDownListViewModel>(courseSubjectTeachersForCourse); //var subjectsInCourse = this.courseSubjectTeacherService.GetAllSubjectsForCourse(courseId); //var subjectTeachers = this.subjectTeachersService.GellAllSubjectTeachersNotInCollection<SubjectTeachersDropDownListViewModel>(subjectsInCourse); var input = new SubjectsInputViewModel { SubjectTeachers = subjectTeachers, }; return(this.View(input)); }
public IActionResult AddSubject(SubjectsInputViewModel input) { var courseId = this.GetRouteId(); var course = this.coursesService.GetById(courseId); string[] parts = input.SubjectTeacher.Split(" - ", StringSplitOptions.RemoveEmptyEntries); string[] teacherNames = parts[1].Split(" ", StringSplitOptions.RemoveEmptyEntries); Subject subject = this.subjectsService.GetASubjectByName(parts[0]); if (subject != null) { Teacher teacher = this.teachersService.GetTeacherByFullName(teacherNames[0], teacherNames[1], teacherNames[2]); var subjectToAdd = this.db.Subjects.Where(x => x.Id == subject.Id).Select(x => x).FirstOrDefault(); var teacherToAdd = this.db.Teachers.Where(x => x.Id == teacher.Id).Select(x => x).FirstOrDefault(); if (subjectToAdd == null) { return(this.View("This Subject does not exist")); } if (teacherToAdd == null) { return(this.View("This teacher does not exist")); } using (this.db) { SubjectTeachers subjectTeacher = new SubjectTeachers(subject, teacher); this.db.Set <CourseSubjects>().Add(new CourseSubjects { CourseId = courseId, Course = this.coursesService.GetById(courseId), SubjectId = subjectToAdd.Id, Subject = this.subjectsService.GetById(subjectToAdd.Id), }); this.db.Set <CourseSubjectTeacher>().Add(new CourseSubjectTeacher { CourseId = courseId, Course = this.coursesService.GetById(courseId), SubjectId = subjectToAdd.Id, Subject = this.subjectsService.GetById(subjectToAdd.Id), TeacherId = teacher.Id, Teacher = teacher, }); //foreach (var course in this.db.Courses) //{ // if (course.Id == courseId) // { // if (!course.SubjectTeachers.Contains(subjectTeacher)) // { // course.SubjectTeachers.Add(subjectTeacher); // } // break; // } //} //foreach (var subjectDb in this.db.Subjects) //{ // if (subjectDb.Id == subjectToAdd.Id) // { // subjectDb.SubjectTeachers.Add(subjectTeacher); // break; // } //} //foreach (var teacherDb in this.db.Teachers) //{ // if (teacherDb.Id == teacherToAdd.Id) // { // teacherDb.SubjectTeachers.Add(subjectTeacher); // break; // } //} foreach (var student in this.db.Students) { if (student.CourseId == courseId) { student.Subjects.Add(new StudentSubjects { StudentId = student.Id, Student = student, SubjectId = subjectToAdd.Id, Subject = this.subjectsService.GetById(subjectToAdd.Id), }); } } this.db.SaveChanges(); } } return(this.RedirectToAction("ByName", new { name = course.Name })); }