public SchoolSubjectWithWeeklyClassesDTO CreateSchoolSubject(SchoolSubjectCreateAndEditDTO dto)
        {
            SchoolSubject subject = SchoolSubjectToSchoolSubjectDTOConverters.SchoolSubjectCreateAndEditDTOToSchoolSubject(dto);

            db.SchoolSubjectsRepository.Insert(subject);
            db.Save();
            //TODO 12: check if the returned object has ID!!

            return(SchoolSubjectToSchoolSubjectDTOConverters.SchoolSubjectToSchoolSubjectWithWeeklyClassesDTO(subject));
        }
        public SchoolSubjectWithWeeklyClassesDTO DeleteSchoolSubject(int id)
        {
            SchoolSubject subject = db.SchoolSubjectsRepository.GetByID(id);

            foreach (var item in subject.TeacherSchoolSubjects)
            {
                item.SchoolSubject = null;
            }

            db.SchoolSubjectsRepository.Delete(id);
            db.Save();

            return(SchoolSubjectToSchoolSubjectDTOConverters.SchoolSubjectToSchoolSubjectWithWeeklyClassesDTO(subject));
        }
        public SchoolSubjectWithWeeklyClassesDTO EditSchoolSubject(int id, SchoolSubjectCreateAndEditDTO dto)
        {
            SchoolSubject subject = db.SchoolSubjectsRepository.GetByID(id);

            if (subject != null)
            {
                subject.Name          = dto.Name;
                subject.WeeklyClasses = dto.WeeklyClasses;

                db.SchoolSubjectsRepository.Update(subject);
                db.Save();
            }

            return(SchoolSubjectToSchoolSubjectDTOConverters.SchoolSubjectToSchoolSubjectWithWeeklyClassesDTO(subject));
        }