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")));
        }