コード例 #1
0
        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));
        }