public UpdateStudentResponse UpdateStudent(UpdateStudentRequest request) { var student = _context.Student .FirstOrDefault(s => s.IndexNumber == request.IndexNumber); var response = new UpdateStudentResponse(); response.IndexNumber = request.IndexNumber; if (!string.IsNullOrEmpty(request.FirstName)) { student.FirstName = request.FirstName; _context.SaveChanges(); } if (!string.IsNullOrEmpty(request.LastName)) { student.LastName = request.LastName; _context.SaveChanges(); } if (!string.IsNullOrEmpty(request.Password)) { student.Password = request.Password; _context.SaveChanges(); } if (!string.IsNullOrEmpty(request.BirthDate)) { student.BirthDate = Convert.ToDateTime(request.BirthDate); _context.SaveChanges(); } if (!string.IsNullOrEmpty(request.IdEnrollment)) { var enrollmentExists = EnrollmentExists(request.IdEnrollment); if (!enrollmentExists) { student.IdEnrollment = Convert.ToInt32(request.IdEnrollment); _context.SaveChanges(); } } response.FirstName = student.FirstName; response.LastName = student.LastName; response.BirthDate = student.BirthDate.ToString(CultureInfo.InvariantCulture); response.IdEnrollment = student.IdEnrollment.ToString(); response.Password = student.Password; return(response); }
/// <summary> /// Update student's information /// </summary> /// <param name="requestModel"></param> /// <returns></returns> public async Task <UpdateStudentResponse> UpdateStudent(UpdateStudentRequest requestModel) { //Find User with the same id in database var user = await _userService.FindById(requestModel.StudentId); //Check if student already existed in database var student = await _repoWrapper.Student.FindByIdAsync(requestModel.StudentId); //If student already existed, update student student = requestModel.MapToStudent(student); //Update Student student = await _repoWrapper.Student.UpdateAsync(student, student.StudentId); return(UpdateStudentResponse.CreateFromStudent(student)); }