public async Task <bool> CreateUserAsync(UserForCreate userForCreate) { try { var user = _mapper.Map <User>(userForCreate); var result = await _userManager.CreateAsync(user, userForCreate.Password); if (!result.Succeeded) { return(false); } user = await _userManager.FindByNameAsync(user.UserName); result = await _userManager.AddToRoleAsync(user, Constants.USER_ROLE); if (!result.Succeeded) { await DeleteUserAsync(user.Id); return(false); } return(true); } catch (Exception ex) { return(false); } }
public async Task <IActionResult> CreateUser([FromBody] UserForCreate user) { var createdUser = await _userService.CreateUser(user).ConfigureAwait(true); return(CreatedAtAction( actionName: nameof(GetUserById), routeValues: new { userId = createdUser.UserId }, value: _resourceFactory.CreateUserResource(createdUser))); }
public async Task <IActionResult> CreateUser(UserForCreate model) { var email = model.Email; _logger.LogInformation("Create new user, email: {email}", email); var existedUser = await _userManager.FindByEmailAsync(email); if (existedUser != null) { ModelState.AddModelError(nameof(model.Email), "Email already exist"); return(new UnprocessableEntityObjectResult(ModelState)); } var roleFromDb = await _roleManager.FindByNameAsync(model.RoleName); if (roleFromDb == null) { ModelState.AddModelError(nameof(model.RoleName), "Unavailable role"); return(new UnprocessableEntityObjectResult(ModelState)); } var userForCreate = new AppUser { UserName = model.Email, Email = model.Email, EmailConfirmed = true }; var result = await _userManager.CreateAsync(userForCreate, model.Password); if (!result.Succeeded) { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(new UnprocessableEntityObjectResult(ModelState)); } await _userManager.AddClaimsAsync(userForCreate, new Claim[] { new Claim(JwtClaimTypes.Role, model.RoleName), new Claim(JwtClaimTypes.Email, model.Email) }); return(Ok()); }
public Task <UserDetail> CreateUser(UserForCreate user) { if (user is null) { throw new ArgumentNullException(nameof(user)); } return(CreateUser()); async Task <UserDetail> CreateUser() { var userForCreate = _mapper.Map <User>(user); _context.Users.Add(userForCreate); await _context.SaveChangesAsync(); return(await GetUser(userForCreate.UserId)); } }
public async Task <IActionResult> CreateUser([FromBody] UserForCreate input) { if (ModelState.IsValid) { var result = await _userRepository.CreateUserAsync(input); if (result) { return(Ok(new { message = "success", StatusCode = 200 })); } return(BadRequest(new { message = "fail" })); } return(BadRequest(ModelState)); }