public async Task <IActionResult> Signup([FromBody] UserResource userRsc) { if (userRsc == null) { return(BadRequest("Invalid request")); } var suValidation = await suValidator.IsValidAsync(userRsc); if (!suValidation.Success) { return(BadRequest(suValidation.ErrorMessage)); } User newUser = this.mapper.Map <UserResource, User>(userRsc); var salt = HashGenerator.GenerateSaltBytes(); var hash = HashGenerator.GenerateSaltedHash(HashGenerator.EncodedStringToByteArray(userRsc.Password), salt); newUser.Salt = HashGenerator.ByteArrayToString(salt); newUser.Password = HashGenerator.ByteArrayToString(hash); userRepo.Create(newUser); uow.Complete(); return(Ok()); }