コード例 #1
0
ファイル: GitreeWorkspace.cs プロジェクト: amis92/wham
 private Option <GitreeStorageFileNode> VisitFolder(GitreeStorageFolderNode folder)
 {
     if (folder.GetDocuments().SingleOrDefault() is GitreeStorageFileNode doc)
     {
         return(doc.Some());
     }
     folder.GetFolders().ForEach(FoldersToVisit.Enqueue);
     return(default);
コード例 #2
0
ファイル: GitreeWorkspace.cs プロジェクト: amis92/wham
            public IEnumerable <GitreeStorageFileNode> GetRootDocuments(SourceFolder sourceFolder)
            {
                var initialDir    = Info.GetDirectoryInfoFor(sourceFolder);
                var initialFolder = new GitreeStorageFolderNode(initialDir, null, Workspace);

                FoldersToVisit.Enqueue(initialFolder);
                return(GetCore().Values());

                IEnumerable <Option <GitreeStorageFileNode> > GetCore()
                {
                    while (FoldersToVisit.Count > 0)
                    {
                        var folder = FoldersToVisit.Dequeue();
                        yield return(VisitFolder(folder));
                    }
                }
            }