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}"); }
private async Task SeedTeachers(ApplicationDbContext dbContext) { if (dbContext.Teachers.Any()) { return; } var secondEnglishLanguageSchoolTeachers = new List <Teacher> { new Teacher { FirstName = "Yordan", LastName = "Apostolov", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Petko", LastName = "Petkov", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Ivanka", LastName = "Ivanova", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Mista", LastName = "Inglishmen", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() } }; var nationalTradeAndBankingSchoolTeachers = new List <Teacher> { new Teacher { FirstName = "Ivan", LastName = "Ivanov", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Radoi", LastName = "Bojinov", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Yavor", LastName = "Yavorov", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Natko", LastName = "Bankera", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() } }; var primarySchoolTeachers = new List <Teacher> { new Teacher { FirstName = "Dobrina", LastName = "Loshotiikova", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Agnes", LastName = "Matematichkata", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Bulgarkata", LastName = "Damqnova", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Gospoja", LastName = "Geografiq", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() } }; var newBulgarianUniversityTeachers = new List <Teacher> { new Teacher { FirstName = "Fizichkata", LastName = "Slavkova", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Himikut", LastName = "Mitko", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Zlobnata", LastName = "Psiholojka", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() }, new Teacher { FirstName = "Finalniqt", LastName = "Gospodin", Email = "*****@*****.**", UniqueId = _idGeneratoService.GenerateTeacherId() } }; var teachers = new List <Teacher>(); teachers.AddRange(secondEnglishLanguageSchoolTeachers); teachers.AddRange(nationalTradeAndBankingSchoolTeachers); teachers.AddRange(primarySchoolTeachers); teachers.AddRange(newBulgarianUniversityTeachers); foreach (var teacher in teachers) { await dbContext.AddAsync(teacher); } var primarySchool = await dbContext.Schools.FirstOrDefaultAsync(s => s.Type == SchoolType.PrimarySchool); if (primarySchool != null) { primarySchool.Teachers = primarySchoolTeachers; dbContext.Update(primarySchool); } var secondEnglishLanguageSchool = await dbContext.Schools.FirstOrDefaultAsync(s => s.Type == SchoolType.HighSchool && s.Name.Contains("Second English Language High School")); if (secondEnglishLanguageSchool != null) { secondEnglishLanguageSchool.Teachers = secondEnglishLanguageSchoolTeachers; dbContext.Update(secondEnglishLanguageSchool); } var ntbg = await dbContext.Schools.FirstOrDefaultAsync(s => s.Type == SchoolType.HighSchool && s.Name.Contains("National Trade and Banking High School")); if (ntbg != null) { ntbg.Teachers = nationalTradeAndBankingSchoolTeachers; dbContext.Update(ntbg); } var nbu = await dbContext.Schools.FirstOrDefaultAsync(s => s.Type == SchoolType.University && s.Name.Contains("New Bulgarian University")); if (nbu != null) { nbu.Teachers = newBulgarianUniversityTeachers; dbContext.Update(nbu); } await dbContext.SaveChangesAsync(); }
public void GenerateTeacherId_WithSingleId_ShouldGenerateIdForTeacher() { var id = _idGeneratorService.GenerateTeacherId(); id.Should().StartWith(GlobalConstants.TeacherIdPrefix.ToString()); }