/// <summary> /// Update student /// </summary> /// <param name="studentUpdate"></param> /// <returns></returns> public async Task <StudentDto> UpdateStudent(StudentUpdateDto studentUpdate) { StudentUser user = db.StudentsRepository.Get(a => a.Id == studentUpdate.Id).FirstOrDefault(); if (user == null) { // 404, Not found. // No reason for an exception I think return(null); } StudentsConverter.UpdateStudentsPersonalData(user, studentUpdate); var result = await db.AuthRepository.UpdateUser(user); if (!result.Succeeded) { var ex = new UserUpdateException(result.Errors.ToArray()); ex.Data.Add("IdentityResultErrors", result.Errors.ToArray()); throw ex; } var updatedUser = db.StudentsRepository.Get(a => a.Id == studentUpdate.Id).FirstOrDefault(); return(StudentsConverter.StudentToStudentDto(updatedUser)); }
/// <summary> /// Register a student /// </summary> /// <param name="userModel"></param> /// <returns></returns> public async Task <StudentDto> RegisterStudent(StudentRegistrationDto userModel) { StudentUser user = StudentsConverter.StudentRegistrationDtoToStudent(userModel); var result = await db.AuthRepository.RegisterStudentUser(user, userModel.Password); if (!result.Succeeded) { var ex = new UserRegistrationException(result.Errors.ToArray()); ex.Data.Add("IdentityResultErrors", result.Errors.ToArray()); throw ex; } user = await db.AuthRepository.FindUserByUserName(userModel.UserName) as StudentUser; return(StudentsConverter.StudentToStudentDto(user)); }