public async Task <StudentFullServiceModel> UpdateStudentAsync(StudentFullServiceModel student) { ValidateStudentId(student.Id); ValidateIfStudentIsDeleted(student.Id); ValidateIfInputStringIsNotNullOrEmpty(student.FirstName); ValidateIfInputStringIsNotNullOrEmpty(student.MiddleName); ValidateIfInputStringIsNotNullOrEmpty(student.LastName); var studentInDb = await db.Students.FindAsync(student.Id); studentInDb.FirstName = student.FirstName; studentInDb.MiddleName = student.MiddleName; studentInDb.LastName = student.LastName; studentInDb.Description = student.Description; studentInDb.Image = student.Image; studentInDb.Address = student.Address; studentInDb.Email = student.Email; studentInDb.Phone = student.Phone; await db.SaveChangesAsync(); var studentInDbUpdated = await db.Students .Include(x => x.Class) .Include(x => x.Marks) .Include(x => x.Notes) .Include(x => x.Parents) .ThenInclude(studentParent => studentParent.Parent) .Include(x => x.Clubs) .ThenInclude(clubStudent => clubStudent.Club) .FirstOrDefaultAsync(x => x.Id == student.Id); return(this.mapper.Map <StudentFullServiceModel>(studentInDbUpdated)); }
public async Task <StudentFullServiceModel> CreateStudentAsync(StudentFullServiceModel student) { ValidateIfInputStringIsNotNullOrEmpty(student.FirstName); ValidateIfInputStringIsNotNullOrEmpty(student.MiddleName); ValidateIfInputStringIsNotNullOrEmpty(student.LastName); ValidateIfInputStringIsNotNullOrEmpty(student.Email); ValidateIfInputStringIsNotNullOrEmpty(student.Phone); ValidateIfInputStringIsNotNullOrEmpty(student.Address); ValidateIfDateIsNotNull(student.DateBirth); Class classOfThisStudent = await this.db.Classes.FirstOrDefaultAsync(x => x.Id == student.Class.Id); Student studentToAddInDb = new Student { FirstName = student.FirstName, MiddleName = student.MiddleName, LastName = student.LastName, IsBanned = false, IsDeleted = false, Class = classOfThisStudent, ClassId = classOfThisStudent.Id, Status = (EnumStatusStudent)Enum.Parse(typeof(EnumStatusStudent), student.Status), IsSchoolCouncilMember = student.IsSchoolCouncilMember, Address = student.Address, Email = student.Email, Phone = student.Phone, DateBirth = student.DateBirth, Description = student.Description, Gender = (EnumGender)Enum.Parse(typeof(EnumGender), student.Gender), Image = student.Image, NumberInClass = student.NumberInClass, }; await SetDefaultImagePathIfImagePathIsNull(studentToAddInDb); await SetDefaultDescriptionIfDescriptionIsNull(studentToAddInDb); await this.db.Students.AddAsync(studentToAddInDb); await db.SaveChangesAsync(); Student studentAddedInDb = await this.db.Students.FirstOrDefaultAsync(x => x.FirstName == student.FirstName && x.MiddleName == student.MiddleName && x.LastName == student.LastName); return(this.mapper.Map <StudentFullServiceModel>(studentAddedInDb)); }
public async Task <IActionResult> Post([FromBody] StudentFullServiceModel student) { var studentCreated = await this.studentService.CreateStudentAsync(student); return(Ok(studentCreated)); }