static string GetSearchPattern(FilesOptions options, ILogger logger) { string pattern = options.Pattern; if (pattern.IndexOfAny(Path.GetInvalidPathChars()) != -1) { logger.Log("Invalid character in pattern:" + options.Pattern + ". Ignored"); pattern = "*.dll"; } return(pattern); }
static Task <int> OnFiles(FilesOptions options) { return(Task.Factory.StartNew(() => { var logger = configuration.Logger; var files = FileOptionsHelper.GetFiles(options, logger); var partitioner = Partitioner.Create(files, true); var loader = configuration.AssemblyLoader; return Parallel.ForEach(partitioner, (path) => loader.ProcessPath(path) ).IsCompleted ? 0 : 1; })); }
public static string[] GetFiles(FilesOptions options, ILogger logger) { if (!string.IsNullOrEmpty(options.Directory)) { try { if (string.IsNullOrEmpty(options.Pattern)) { return(Directory.GetFiles(options.Directory)); } else { return(Directory.GetFiles(options.Directory, GetSearchPattern(options, logger), GetSearchOptions(options))); } } catch (Exception e) { logger.Log("Error when obtaining files:" + e.Message); } } return(new string[] { }); }
static SearchOption GetSearchOptions(FilesOptions options) { return(options.AllDirectories ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); }