public async Task <IRoleEntity> GetAsync(string roleId)
        {
            var pk = RoleEntity.GeneratePartitionKey();
            var rk = RoleEntity.GenerateRowKey(roleId);

            return(await _tableStorage.GetDataAsync(pk, rk));
        }
        public async Task SaveAsync(IRoleEntity roleEntity)
        {
            if (roleEntity is RoleEntity role)
            {
                role.PartitionKey = RoleEntity.GeneratePartitionKey();
                role.RowKey       = roleEntity.RoleId;
            }
            else
            {
                var pk = RoleEntity.GeneratePartitionKey();
                var rk = RoleEntity.GenerateRowKey(roleEntity.RoleId);
                role = await _tableStorage.GetDataAsync(pk, rk)
                       ?? new RoleEntity
                {
                    PartitionKey = pk, RowKey = rk
                };

                role.RoleId    = roleEntity.RoleId;
                role.Name      = roleEntity.Name;
                role.KeyValues = roleEntity.KeyValues;
            }

            await _tableStorage.InsertOrMergeAsync(role);
        }