public void AddClass(ClassInputModel inputModel) { var entityClass = Mapper.Map <ClassInputModel, Class>(inputModel); entityClass.SchoolId = Repositories.Schools.Query() .AsNoTracking() .FirstOrDefault(s => s.Id == inputModel.SchoolId)?.Id; this.Repositories.Classes.Create(entityClass); }
public async Task CreateAsync(ClassInputModel inputModel) { var teacherId = int.Parse(inputModel.TeacherId); var teacher = _teachersRepository.All().FirstOrDefault(t => t.Id == teacherId); if (teacher != null) { if (teacher.Class != null) { throw new ArgumentException($"Sorry, teacher with id {teacherId} is already registered as head of another class"); } var isClassLetterNumberCombinationAlreadyOccupied = _classesRepository.All().Any(c => c.Letter == inputModel.Letter && c.YearCreated == inputModel.YearCreated && c.Year == inputModel.Year && c.Teacher.SchoolId == teacher.SchoolId); if (isClassLetterNumberCombinationAlreadyOccupied) { throw new ArgumentException($"Sorry, there is already existing class for year {inputModel.YearCreated} that's currently in {inputModel.Year} grade and with letter {inputModel.Letter}"); } var schoolClass = new Class { Letter = inputModel.Letter, Year = inputModel.Year, YearCreated = inputModel.YearCreated, Teacher = teacher }; await _classesRepository.AddAsync(schoolClass); await _classesRepository.SaveChangesAsync(); var classEntity = _classesRepository.All().First(c => c.Letter == schoolClass.Letter && c.YearCreated == schoolClass.YearCreated && c.Year == schoolClass.Year); var school = teacher.School; school.Classes.Add(classEntity); _schoolsRepository.Update(school); await _schoolsRepository.SaveChangesAsync(); return; } throw new ArgumentException($"Sorry, we couldn't find teacher with id {teacherId}"); }
public ClassViewModel EditClass(string id, ClassInputModel inputModel) { var classFromDto = Repositories.Classes.GetWithoutTracking() .Find(c => c.Id == id); if (classFromDto is null) { throw new TargetException("Class not found"); } var entityClass = Mapper.Map <ClassInputModel, Class>(inputModel); entityClass.Id = classFromDto.Id; Repositories.Classes.Update(entityClass); return(Mapper.Map <Class, ClassViewModel>(entityClass)); }
public void AddClass([FromBody] ClassInputModel inputModel) { this.ClassService.AddClass(inputModel); }
public ClassViewModel EditClass([FromRoute] string id, [FromBody] ClassInputModel inputModel) { return(this.ClassService.EditClass(id, inputModel)); }