Example #1
0
        private ViewFolder <T> buildFolder(string path)
        {
            var views = ViewEngineSettings.FileSystem.FindFiles(path, _match).Select(x => new FubuFile(x, Provenance)
            {
                ProvenancePath = _content.Path
            })
                        .Select(_builder).Where(x => !_settings.IsExcluded(x));

            var folder = new ViewFolder <T>(path)
            {
                IsShared = _settings.IsSharedFolder(path)
            };

            folder.RelativePath = string.Empty;
            folder.Views.AddRange(views);

            _folders.Add(folder);


            ViewEngineSettings.FileSystem.ChildDirectoriesFor(path).Where(x => !_settings.FolderShouldBeIgnored(x)).Each(child =>
            {
                var childFolder          = buildFolder(child);
                childFolder.Parent       = folder;
                childFolder.RelativePath = (folder.RelativePath + "/" + childFolder.Name).TrimStart('/');

                if (childFolder.IsShared)
                {
                    folder.LayoutFolders.Add(childFolder);
                }
            });

            return(folder);
        }