public async Task <T> CreateTeacher <T>(TeacherInputModel inputModel) { var schoolId = int.Parse(inputModel.SchoolId); var school = _schoolsRepository.All().FirstOrDefault(s => s.Id == schoolId); if (school != null) { var teacher = new Teacher() { FirstName = inputModel.FirstName, LastName = inputModel.LastName, School = school, UniqueId = _idGeneratorService.GenerateTeacherId() }; await _teachersRepository.AddAsync(teacher); await _teachersRepository.SaveChangesAsync(); BasePersonModel baseModel = _teachersRepository.All().FirstOrDefault(t => t.UniqueId == teacher.UniqueId); return(AutoMapperConfig.MapperInstance.Map <T>(baseModel)); } throw new ArgumentException($"Sorry, we couldn't find school with id {schoolId}"); }
public IActionResult Create() { var viewModel = new TeacherInputModel(); viewModel.GroupsItems = this.groupsService.GetAllAsKeyValuePairs(); return(this.View(viewModel)); }
public async Task <IActionResult> Create(TeacherInputModel input) { if (!this.ModelState.IsValid) { return(this.View(input)); } await this.teachersService.AddAsync(input); return(this.RedirectToAction(nameof(this.Index))); }
public async Task <IActionResult> Edit(int id, TeacherInputModel input) { var currentTeacher = this.teachersRepository.AllAsNoTracking() .FirstOrDefault(x => x.Id == id); var groupId = input.Group == null ? currentTeacher.NurseryGroupId : int.Parse(input.Group); var teacher = new Teacher { Id = input.Id, FirstName = input.FirstName, LastName = input.LastName, Address = input.Address, IsDeleted = currentTeacher.IsDeleted, DeletedOn = currentTeacher.DeletedOn, CreatedOn = currentTeacher.CreatedOn, ModifiedOn = input.ModifiedOn, NurseryGroupId = groupId, DateOfBirth = currentTeacher.DateOfBirth, Gender = currentTeacher.Gender, }; if (id != teacher.Id) { return(this.NotFound()); } if (this.ModelState.IsValid) { try { this.teachersRepository.Update(teacher); await this.teachersRepository.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!this.TeacherExists(teacher.Id)) { return(this.NotFound()); } else { throw; } } return(this.RedirectToAction(nameof(this.Index))); } return(this.View(teacher)); }
public async Task AddAsync(TeacherInputModel input) { var groupId = this.groupsRepository.AllAsNoTracking() .Where(x => x.Id == int.Parse(input.Group)) .Select(x => x.Id) .FirstOrDefault(); var teacher = new Teacher { FirstName = input.FirstName, LastName = input.LastName, Address = input.Address, DateOfBirth = input.DateOfBirth, NurseryGroupId = groupId, }; await this.teachersRepository.AddAsync(teacher); await this.teachersRepository.SaveChangesAsync(); }