public async Task <IActionResult> LibrarianSignUp(StaffSignUpResourceDto userStaffSignUpResourceDto) { var user = _mapper.Map <StaffSignUpResourceDto, User>(userStaffSignUpResourceDto); var userCreateResult = await _userManager.CreateAsync(user, userStaffSignUpResourceDto.Password); if (userCreateResult.Succeeded) { var result = await _userManager.AddToRoleAsync(user, "librarian"); if (result.Succeeded) { var createdUser = _userManager.Users.SingleOrDefault(u => u.UserName == userStaffSignUpResourceDto.Email); var staff = _mapper.Map <StaffSignUpResourceDto, Staff>(userStaffSignUpResourceDto); staff.UserId = createdUser.Id; await _staffService.CreateStaffMember(staff); return(Created(string.Empty, string.Empty)); } } return(Problem(userCreateResult.Errors.First().Description, null, 500)); }