public async Task <IActionResult> Register(CreateUserAPIRequest user) { if (await _repo.UserExistsAsync(user.username.ToLower())) { return(BadRequest("Username already Exists")); } var result = await _repo.RegisterAsync(user); if (result == null) { return(BadRequest("An error occured saving changes")); } return(CreatedAtRoute("GetUser", new { Controller = "Users", UserUniqueIdentity = result.UserUniqueIdentity }, result)); }
public async Task <SuccessCreateUserResponse> RegisterAsync(CreateUserAPIRequest request) { try { _logger.LogInfo(request.username + " Creating user...", "RegisterAsync"); byte[] passwordhash, passwordSalt; CreatePasswordHash(request.password, out passwordhash, out passwordSalt); var user = new User { PasswordHash = passwordhash, PasswordSalt = passwordSalt, Email = request.Email, Username = request.username, UserUniqueIdentity = Guid.NewGuid() }; await _context.Users.AddAsync(user); var success = await _context.SaveChangesAsync() > 0; if (success) { _logger.LogInfo(request.username + " Created Successfully", "RegisterAsync"); return(new SuccessCreateUserResponse { Email = user.Email, Username = user.Username, UserUniqueIdentity = user.UserUniqueIdentity }); } return(null); } catch (Exception ex) { _logger.LogError(ex.Message + " " + "Inner Exception" + ex.InnerException?.Message, " AuthenticationRepositoryRegisterAsync"); return(default);