public static void WriteFolder(IndentedTextWriter writer, PageFolderDescriptor folder) { CodeGenerator.WriteHelperClassStart(writer, $"{folder.Name}PagesFolder", folder.Name); WriteFoldersAndPages(writer, folder); CodeGenerator.WriteHelperClassEnd(writer); }
public void WriteAreaPages_Folders() { var area = new PageAreaDescriptor(""); var folder = new PageFolderDescriptor(area, "Home"); area.Folders.Add(folder); folder.Pages.Add(new PageDescriptor(area, "/Index")); var folder2 = new PageFolderDescriptor(area, "Other"); area.Folders.Add(folder2); folder2.Pages.Add(new PageDescriptor(area, "/Privacy")); // Act CodeGenerator.WriteAreaPages(_writer, area); // Assert Assert.Equal(@"public static UrlPages Pages(this IUrlHelper urlHelper) => new UrlPages(urlHelper); public class UrlPages { private readonly IUrlHelper urlHelper; public UrlPages(IUrlHelper urlHelper) { this.urlHelper = urlHelper; } public HomePagesFolder Home => new HomePagesFolder(urlHelper); public class HomePagesFolder { private readonly IUrlHelper urlHelper; public HomePagesFolder(IUrlHelper urlHelper) { this.urlHelper = urlHelper; } public string Index() { var __routeValues = Microsoft.AspNetCore.Routing.RouteValueDictionary.FromArray(new System.Collections.Generic.KeyValuePair<string, object>[] { new System.Collections.Generic.KeyValuePair<string, object>(""area"", """"), new System.Collections.Generic.KeyValuePair<string, object>(""handler"", """"), }); return urlHelper.Page(""/Index"", __routeValues); } } public OtherPagesFolder Other => new OtherPagesFolder(urlHelper); public class OtherPagesFolder { private readonly IUrlHelper urlHelper; public OtherPagesFolder(IUrlHelper urlHelper) { this.urlHelper = urlHelper; } public string Privacy() { var __routeValues = Microsoft.AspNetCore.Routing.RouteValueDictionary.FromArray(new System.Collections.Generic.KeyValuePair<string, object>[] { new System.Collections.Generic.KeyValuePair<string, object>(""area"", """"), new System.Collections.Generic.KeyValuePair<string, object>(""handler"", """"), }); return urlHelper.Page(""/Privacy"", __routeValues); } } } ", _code.ToString(), false, true); }