protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken) { var path = Path.Get(context); var criteria = SearchPattern?.Get(context) ?? "*.*"; var directories = ResolveValues(path); var patterns = ResolveValues(criteria); IEnumerable <string> result = new string[] { }; foreach (var directory in directories) { foreach (var pattern in patterns) { result = result.Union(Directory.EnumerateFiles(directory, pattern, SearchOption)); } } if (Exclusions > 0) { result = result.Where(filePath => (new FileInfo(filePath).Attributes & Exclusions) == 0); } // Outputs return((ctx) => Result.Set(ctx, result)); }
protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken token) { var dir = DirectoryPath.Get(context); var time = Timeout.Get(context); var searchPattern = SearchPattern.Get(context) ?? "*.*"; var afterDate = CalculateDate(dir); var filePath = await ExecuteWithTimeoutAsync(context, token, ExecuteMainAsync(dir, searchPattern, afterDate, token), time).ConfigureAwait(false); return(ctx => Result.Set(ctx, filePath != null ? new FileInfo(filePath) : null)); }