public PageFolderDescriptor(PageAreaDescriptor area, string name)
 {
     Area    = area ?? throw new ArgumentNullException(nameof(area));
     Name    = name ?? throw new ArgumentNullException(nameof(name));
     Pages   = new KeyedCollection <PageDescriptor>(page => new { page.Name, page.PageHandler, Parameters = string.Join(",", page.Parameters.Select(param => param.Type.TrimEnd('?'))) });
     Folders = new KeyedCollection <PageFolderDescriptor>(folder => folder.Name);
 }
 public ControllerDescriptor(AreaDescriptor area, string controllerName)
 {
     Area    = area ?? throw new ArgumentNullException(nameof(area));
     Name    = controllerName ?? throw new ArgumentNullException(nameof(controllerName));
     Actions = new KeyedCollection <ActionDescriptor>(action => new { action.Name, Parameters = string.Join(",", action.Parameters.Select(param => param.Type.TrimEnd('?'))) });
 }
 public PageAreaDescriptor(string name)
 {
     Name    = name;
     Pages   = new KeyedCollection <PageDescriptor>(page => new { page.Name, page.PageHandler, Parameters = string.Join(",", page.Parameters.Select(param => param.Type.TrimEnd('?'))) });
     Folders = new KeyedCollection <PageFolderDescriptor>(folder => folder.Name);
 }