Exemple #1
0
 public static IEnumerable <string> GetDirFilter(this TreeFilterType filter)
 {
     if (filter.HasFlag(TreeFilterType.NoRelVobs))
     {
         yield return("rel");
     }
     if (filter.HasFlag(TreeFilterType.NoToolbox))
     {
         yield return("tlbx");
     }
 }
Exemple #2
0
        public static ITreeItem[] AddFilter(FolderItem[] items, TreeFilterType filter)
        {
            var root      = new FolderItem(string.Empty);
            var dirFilter = filter.GetDirFilter();

            foreach (var dir in items)
            {
                var newDir     = new FolderItem(dir.Path);
                var filterDirs = dirFilter.Select(x => Path.Combine(dir.Path, x));
                newDir.Children.AddRange(dir.Children.Where(sln => filterDirs.Any(fdir => sln.Path.Contains(fdir))));
                if (newDir.Children.Count > 0)
                {
                    root.Children.Add(newDir);
                }
            }
            return(root.Children.ToArray());
        }