@page "/tutorials/{**slug}" @using System.Text @using OliverBooth.Data.Web @using OliverBooth.Services @model Index @inject ITutorialService TutorialService @{ ViewData["Title"] = "Tutorials"; ITutorialFolder? currentFolder = Model.CurrentFolder; }
@if (currentFolder is not null) { }

@(currentFolder?.Title ?? "Tutorials")

@foreach (ITutorialFolder[] folders in TutorialService.GetFolders(currentFolder).Chunk(2)) {
@foreach (ITutorialFolder folder in folders) { }
} @if (currentFolder is not null) { foreach (ITutorialArticle[] articles in TutorialService.GetArticles(currentFolder).Chunk(2)) {
@foreach (ITutorialArticle article in articles) { var slugBuilder = new StringBuilder(); ITutorialFolder? folder = TutorialService.GetFolder(article.Folder); if (folder is not null) { slugBuilder.Append(folder.Slug); slugBuilder.Append('/'); } while (folder?.Parent is { } parentId) { folder = TutorialService.GetFolder(parentId); if (folder is not null) { slugBuilder.Append(folder.Slug); slugBuilder.Append('/'); } } string slug = slugBuilder + article.Slug; }
} }