public async Task FetchNextPageAtTocNode()
        {
            //filter duplicate tocNode
            TOCNode currentToc = TOCDataManager.CurrentLeafNode;

            while (TOCDataManager.EndTocID != currentToc.ID)
            {
                currentToc = PublicationContentUtil.Instance.GetNextPageByTreeNode(currentToc);
            }
            currentToc = PublicationContentUtil.Instance.GetNextPageByTreeNode(currentToc);

            TOCDataManager.CurrentLeafNode = currentToc;
            TOCDataManager.EndTocID        = currentToc.ID;

            string htmlString = await PublicationContentUtil.Instance.GetContentFromTOC(BookID, currentToc, false);

            PageViewController.AppendPageContent(htmlString, BookID, currentToc.ID.ToString(), currentToc.Title);

            if (currentToc != null)
            {
                this.InvokeOnMainThread(() =>
                                        HighlightLeafTocNode(currentToc)
                                        );
            }
        }