private void ProcessDirectory(string directoryPath, ISpecification <NodeModelBase> specification, INodeFoundEventPublisher recursiveSearchResult) { var model = _directoryService.GetDirectory(directoryPath); if (specification.IsSatisfiedBy(model)) { recursiveSearchResult.RaiseNodeFoundEvent(directoryPath); } }
private static void ProcessNode(string nodePath, ISpecification <NodeModelBase> specification, INodeFoundEventPublisher publisher, Func <string, NodeModelBase> factory) { var model = factory(nodePath); if (specification.IsSatisfiedBy(model)) { publisher.RaiseNodeFoundEvent(nodePath); } }
private void ProcessFile(string filePath, ISpecification <NodeModelBase> specification, INodeFoundEventPublisher publisher) { var model = _fileService.GetFile(filePath); if (specification.IsSatisfiedBy(model)) { publisher.RaiseNodeFoundEvent(filePath); } }
private void ProcessNodes(string directory, ISpecification <NodeModelBase> specification, INodeFoundEventPublisher publisher) { foreach (var node in _directoryService.GetNodesRecursively(directory)) { try { if (_fileService.CheckIfExists(node)) { ProcessFile(node, specification, publisher); } else { ProcessDirectory(node, specification, publisher); } } catch (Exception ex) { _logger.LogError(ex, "Exception occurred during recursive search"); } } }
private void ProcessDirectory(string directoryPath, ISpecification <NodeModelBase> specification, INodeFoundEventPublisher publisher) => ProcessNode(directoryPath, specification, publisher, _directoryService.GetDirectory);
private void ProcessFile(string filePath, ISpecification <NodeModelBase> specification, INodeFoundEventPublisher publisher) => ProcessNode(filePath, specification, publisher, _fileService.GetFile);
static Task TaskFactory(INodeFoundEventPublisher r) => Task.CompletedTask;