Ejemplo n.º 1
0
 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);
        }