public UserDto Create(RegisterDto userData) { // validation if (userData == null) { throw new ArgumentNullException("Password is required"); } if (this.dbContext.Users.Any(x => x.Email == userData.Email)) { throw new ArgumentException("Email \"" + userData.Email + "\" is already taken"); } byte[] passwordHash, passwordSalt; AuthUtils.CreatePasswordHash(userData.Password, out passwordHash, out passwordSalt); User user = new User() { Id = Guid.NewGuid(), Email = userData.Email, FirstName = userData.FirstName, LastName = userData.LastName, PasswordHashed = passwordHash, PasswordSalted = passwordSalt }; this.dbContext.Users.Add(user); this.dbContext.SaveChanges(); return(new UserDto(user)); }