public void EditSubject(string classId, ClassToSubjectInputModel inputModel) { var subject = Repositories.ClassToSubject.Query() .Include(cs => cs.Subject) .Include(cs => cs.Teacher) .AsNoTracking() .Where(cs => cs.ClassId == classId) .FirstOrDefault(cs => cs.SubjectId == inputModel.SubjectId); if (subject is null) { throw new TargetException("Data not found"); } var teacher = Repositories.TeacherToSubject.Query() .Include(tts => tts.Teacher) .Include(tts => tts.Subject) .Where(tts => tts.SubjectId == inputModel.SubjectId) .FirstOrDefault(tts => tts.TeacherId == inputModel.TeacherId); if (teacher is null) { throw new TargetException("Teacher not found"); } var newData = Mapper.Map <ClassToSubjectInputModel, ClassToSubject>(inputModel); newData.Id = subject.Id; newData.ClassId = classId; newData.SubjectId = subject.SubjectId; newData.Teacher = teacher.Teacher; Repositories.ClassToSubject.Update(newData); }
public void AddSubject(string classId, ClassToSubjectInputModel inputModel) { var dbClass = this.Repositories.Classes.Query() .Include(c => c.Subjects) .FirstOrDefault(c => c.Id == classId); if (dbClass is null) { throw new TargetException("Class not found"); } var subject = Repositories.Subjects.GetById(inputModel.SubjectId); if (subject is null) { throw new TargetException("Subject not found"); } var teacher = Repositories.TeacherToSubject.Query() .Include(tts => tts.Teacher) .Include(tts => tts.Subject) .Where(tts => tts.SubjectId == inputModel.SubjectId) .FirstOrDefault(tts => tts.TeacherId == inputModel.TeacherId); if (teacher is null) { throw new TargetException("Teacher not found"); } dbClass.Subjects.Add(new ClassToSubject { Id = Guid.NewGuid().ToString(), Class = dbClass, ClassId = classId, Subject = subject, SubjectId = subject.Id, Teacher = teacher.Teacher, EndTime = inputModel.EndTime, StartTime = inputModel.StartTime, WeekDay = inputModel.WeekDay }); Repositories.Classes.SaveChanges(); }
public void EditSubjectInClass([FromRoute] string classId, [FromBody] ClassToSubjectInputModel inputModel) { this.ClassService.EditSubject(classId, inputModel); }