public static IEnumerable <string> Filter(this FileSystemTestType type, IEnumerable <string> items) { if (type.HasFlag(FileSystemTestType.Multiple)) { return(items.Where(z => type.IsMatch(z))); } else { return new string[] { } }; } }
public static bool IsMatch(this FileSystemTestType type, IEnumerable <string> items) { if (items.Count() <= 1) { return(items.All(z => type.IsMatch(z))); } switch (type) { case FileSystemTestType.None: case FileSystemTestType.File: case FileSystemTestType.Directory: case FileSystemTestType.Single: return(false); case FileSystemTestType.MultipleFile: return(items.All(z => IsFileExists(z))); case FileSystemTestType.MultipleDirectory: return(items.All(z => IsDirectoryExists(z))); case FileSystemTestType.Multiple: return(items.All(z => IsFileExists(z) || IsDirectoryExists(z))); case FileSystemTestType.Any: return(true); } if (type.HasFlag(FileSystemTestType.MultipleDirectory) && items.All(z => IsDirectoryExists(z))) { return(true); } if (type.HasFlag(FileSystemTestType.MultipleFile) && items.All(z => IsFileExists(z))) { return(true); } return(false); }
public static bool IsMatch(this FileSystemTestType type, string item) { return((type.HasFlag(FileSystemTestType.File) && IsFileExists(item)) || (type.HasFlag(FileSystemTestType.Directory) && IsDirectoryExists(item)) || type == FileSystemTestType.Any); }