コード例 #1
0
        public void CanSaveToFolder()
        {
            // Arrange
            var gitMock = new Mock <IGitManager>();
            var manager = new PageManager(gitMock.Object, @"..\..\..\WikiPages");

            var testPageModel = new WikiPageModel
            {
                Content  = "This is test content",
                Title    = "Test Page 1",
                SubTitle = "SubTitle Page 1",
                Folder   = "SubFolder1"
            };
            var savePath = @"..\..\..\WikiPages\SubFolder1\test-page-1.md";

            // Act
            var result = manager.SavePage(testPageModel, "test");

            // Assert
            Assert.IsTrue(result);
            Assert.AreEqual("test-page-1", testPageModel.PageLink);
            Assert.IsTrue(File.Exists(savePath));
            Assert.AreEqual(@"<!-- TITLE: Test Page 1 -->
<!-- SUBTITLE: SubTitle Page 1 -->
This is test content",
                            File.ReadAllText(savePath));

            // Cleanup
            File.Delete(savePath);
            Directory.Delete(Path.GetDirectoryName(savePath));
        }
コード例 #2
0
        private List <WikiPageModel> ConvertHierarchyResultToList(dynamic hierarchyResult)
        {
            if (hierarchyResult == null)
            {
                return(null);
            }
            var children = new List <WikiPageModel>();

            foreach (var child in hierarchyResult)
            {
                var childModel = new WikiPageModel();
                childModel.Title    = child.Value.title;
                childModel.Slug     = this.RewriteSlug(child.Value.slug);
                childModel.Children = child.Value.children.Count == 0 ? null :
                                      new List <WikiPageModel>();
                foreach (var grandchild in child.Value.children)
                {
                    var grandchildModel = new WikiPageModel();
                    grandchildModel.Title = grandchild.Value.title;
                    grandchildModel.Slug  = this.RewriteSlug(grandchild.Value.slug);
                    childModel.Children.Add(grandchildModel);
                }
                if (childModel.Children.Count == 0)
                {
                    childModel.Children = null;
                }
                children.Add(childModel);
            }
            if (children.Count == 0)
            {
                return(null);
            }
            return(children);
        }
コード例 #3
0
        public IActionResult View(string slug, int?version = null)
        {
            WikiPageDTO page = null;

            if (version.HasValue)
            {
                page = service.GetPageRevision(slug, version.Value);
            }
            else
            {
                page = service.GetPage(slug);
            }

            if (page == null)
            {
                return(Redirect(Request.Path + "/edit"));
            }

            var model = new WikiPageModel()
            {
                WikiPage = page,
                EditUrl  = Request.Scheme + "://" + (Request.Host + Request.Path + "/edit").Replace("//", "/")
            };

            return(View(model));
        }
コード例 #4
0
        private void CheckPageLink()
        {
            if (PageLink == null || PageLink == "new")
            {
                PageModel = new WikiPageModel
                {
                    Content = "# New Page", Title = "New Page", Folder = Folder
                };
            }
            else
            {
                PageModel = _pageManager.LoadPage(PageLink, Folder);
            }

            StateHasChanged();
        }
コード例 #5
0
ファイル: WikiPageModel.cs プロジェクト: TimPurdum/Bliki
 public bool Equals(WikiPageModel other)
 {
     return(other.Title == Title &&
            other.PageLink == PageLink &&
            other.Folder == Folder);
 }