public async Task <IHttpActionResult> RegisterTeacher(TeacherRegistrationDto userModel) { var userData = IdentityHelper.GetLoggedInUser(RequestContext); logger.Trace("Register Teacher {@teacherReg} by {@userData}", userModel, userData); var result = await service.RegisterTeacher(userModel); logger.Info("Created Teacher {@userId}", result.TeacherId); return(CreatedAtRoute("GetTeacherById", new { teacherId = result.TeacherId }, result)); }
/// <summary> /// Convert a registration dto to full entity /// </summary> /// <param name="teacherReg"></param> /// <returns></returns> public static TeacherUser TeacherRegistrationDtoToTeacher(TeacherRegistrationDto teacherReg) { return(new TeacherUser() { UserName = teacherReg.UserName, FirstName = teacherReg.FirstName, LastName = teacherReg.LastName, Gender = teacherReg.Gender, Email = teacherReg.Email, PhoneNumber = teacherReg.PhoneNumber, Degree = teacherReg.Degree, Title = teacherReg.Title }); }
/// <summary> /// Register a teacher /// </summary> /// <param name="userModel"></param> /// <returns></returns> public async Task <TeacherDto> RegisterTeacher(TeacherRegistrationDto userModel) { TeacherUser user = TeachersConverter.TeacherRegistrationDtoToTeacher(userModel); var result = await db.AuthRepository.RegisterTeacherUser(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 TeacherUser; return(TeachersConverter.TeacherToTeacherDto(user)); }