public static IEnumerable <string> GetDirFilter(this TreeFilterType filter) { if (filter.HasFlag(TreeFilterType.NoRelVobs)) { yield return("rel"); } if (filter.HasFlag(TreeFilterType.NoToolbox)) { yield return("tlbx"); } }
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()); }