private VirtualServerEntity.Tree _getTreeItem(Tree tree)
        {
            if (tree == null)
            {
                return(null);
            }

            var obj = new VirtualServerEntity.Tree()
            {
                Channel  = getChannel(tree.c),
                Children = _getTree(tree.children)
            };

            // fill users
            if (tree.users.Length > 0)
            {
                obj.Users = new VirtualServerEntity.OnlineUser[tree.users.Length];
                for (int i = 0; i < tree.users.Length; i++)
                {
                    obj.Users[i] = getOnlineUser(tree.users[i]);
                }
            }

            return(obj);
        }
        private VirtualServerEntity.Tree[] _getTree(Tree[] tree)
        {
            if (tree == null)
            {
                return(null);
            }

            var obj = new VirtualServerEntity.Tree[tree.Length];

            for (int i = 0; i < tree.Length; i++)
            {
                obj[i] = _getTreeItem(tree[i]);
            }
            return(obj);
        }