Пример #1
0
        private PageDTO GetDTO(Page page, User user)
        {
            var childPages = new List <PagePreviewDTO>();

            foreach (var cp in page.ChildPages)
            {
                if (PageRules.CanRead(user, cp))
                {
                    childPages.Add(GetPreviewDTO(cp));
                }
            }

            var res = new PageDTO
            {
                ChildPages = childPages,
                Id         = page.Id,
                Name       = page.Name,
                Published  = page.Published,
                Text       = page.Text,
                Access     = new DTO.AccessDTO
                {
                    CanDelete = PageRules.CanDelete(user, page),
                    CanRead   = PageRules.CanRead(user, page),
                    CanUpdate = PageRules.CanEdit(user, page)
                }
            };

            if (page.ParentPage != null)
            {
                res.ParentId   = page.ParentPage.Id;
                res.ParentName = page.ParentPage.Name;
            }
            else
            {
                res.ParentId = -1;
            }

            return(res);
        }