public async Task <ActionResultResponse> InsertUserAccount(string tenantId, UserAccountMeta userAccountMeta) { var userId = Guid.NewGuid().ToString(); var isUserNameExists = await _userAccountRepository.CheckUserNameExists(userId, userAccountMeta.UserName); if (isUserNameExists) { return(new ActionResultResponse(-1, _resourceService.GetString("Username already exists"))); } if (userAccountMeta.Password.Trim() != userAccountMeta.ConfirmPassword.Trim()) { return(new ActionResultResponse(-2, _resourceService.GetString("Confirm password doesn't match. Please try again."))); } var passwordSalt = Generate.GenerateRandomBytes(Generate.PasswordSaltLength); var passwordHash = Generate.GetInputPasswordHash(userAccountMeta.Password.Trim(), passwordSalt); var userAccount = new UserAccount { UserName = userAccountMeta.UserName.Trim(), Email = userAccountMeta.Email?.Trim(), IsActive = userAccountMeta.IsActive, PhoneNumber = userAccountMeta.PhoneNumber?.Trim(), FullName = userAccountMeta.FullName, PasswordHash = Convert.ToBase64String(passwordHash), PasswordSalt = passwordSalt, Avatar = userAccountMeta.Avatar?.Trim(), TenantId = tenantId, UnsignName = $"{userAccountMeta.UserName.Trim().ToUpper().StripVietnameseChars()} {userAccountMeta.PhoneNumber?.Trim().StripVietnameseChars()} {userAccountMeta.Email?.Trim().ToUpper().StripVietnameseChars()}", NormalizedUserName = userAccountMeta.UserName.Trim().StripChars().ToUpper() }; var result = await _userAccountRepository.Insert(userAccount); return(result <= 0 ? new ActionResultResponse(result, _sharedResourceService.GetString(ErrorMessage.SomethingWentWrong)) : new ActionResultResponse(result, _resourceService.GetString("Add new account success"))); }