Exemplo n.º 1
0
        public WikiPageTreeNode Create(WikiPage page)
        {
            WikiPageTreeNode parent = null;
            if (page.Parent != null)
            {
                parent = _session.Query<WikiPageTreeNode>().FirstOrDefault(x => x.PageId == page.Parent.Id);
            }

            var node = new WikiPageTreeNode(page, parent);
            _session.Save(node);
            return node;
        }
Exemplo n.º 2
0
        private void AddChildren(PagePath pagePath, string pageUri, SiteMapNode currentMapNode, WikiPageTreeNode currentTreeNode,
                                 IEnumerable<WikiPageTreeNode> completeTree)
        {
            foreach (var childTreeNode in completeTree.Where(x => x.ParentLinage == currentTreeNode.Lineage))
            {
                var child = new SiteMapNode(childTreeNode.Page.Title, childTreeNode.Path,
                                            childTreeNode.CreateLink(pageUri),
                                            childTreeNode.CreateLinksForPath(pageUri));
                if (child.Path.Equals(pagePath))
                    child.IsCurrent = true;

                currentMapNode.AddChild(child);
                AddChildren(pagePath, pageUri, child, childTreeNode, completeTree);
            }
        }
Exemplo n.º 3
0
        public WikiPageTreeNode(WikiPage page, WikiPageTreeNode parentNode)
        {
            if (page == null) throw new ArgumentNullException("page");
            if (parentNode == null)
            {
                Lineage = string.Format("/{0}/", page.Id);
                Titles = page.Title;
                Path = page.PagePath;
                Depth = 1;
            }
            else
            {
                Lineage = string.Format("{0}{1}/", parentNode.Lineage, page.Id);
                Depth = parentNode.Depth + 1;
                Path = page.PagePath;

                // level two should not include the parent name (one = root document i.e. "home")
                Titles = Depth == 2
                             ? page.Title
                             : string.Format("{0}{{#}}{1}", parentNode.Titles, page.Title);
            }

            Page = page;
        }
Exemplo n.º 4
0
 public void Save(WikiPageTreeNode node)
 {
     _session.Update(node);
 }
Exemplo n.º 5
0
 public void Delete(WikiPageTreeNode node)
 {
     _session.Delete(node);
 }