private void CreateProject(IResourceIdFactory resourceIdFactory) { _project = new Project(resourceIdFactory.ResourceFromFilePath(_path)); _project.Builder = this; var files = GetRecursiveFileEnumeration(_path); files = _fileFilter.Filter(files); var resources = files.Select(x => resourceIdFactory.ResourceFromFilePath(x)); resources = resources.MemoizeAll(); _files = new ResourceSet(resources, "file"); }
/// <summary> /// Each subdir of <paramref name="rootDirectory"/> is considered a project. /// </summary> /// <param name="rootDirectory">the root path to start scanning from</param> /// <param name="scanner">the scanner to use</param> /// <returns></returns> public IEnumerable<ProjectBuilder> CreateProjectBuilders(string rootDirectory, IResourceIdFactory resourceIdFactory, IComponentFactory componentFactory) { foreach (var dir in GetProjectDirectories(rootDirectory)) { if (IsExcluded(dir)) continue; var filter = new MultiFilter<string>(Configuration.FileFilters); ProjectBuilder builder = new ProjectBuilder(dir, filter, resourceIdFactory, componentFactory); yield return builder; } }
public ProjectBuilder(string projectPath, IFilter<string> fileFilter, IResourceIdFactory resourceIdFactory, IComponentFactory componentFactory) { if (string.IsNullOrEmpty(projectPath) || !Directory.Exists(projectPath)) throw new ArgumentException(string.Format("the projectPath supplied was null, empty, or a non existant path : '{0}'", projectPath ?? "[null]")); if (fileFilter == null) throw new ArgumentNullException("fileFilter"); _path = projectPath; _fileFilter = fileFilter; _resourceIdFactory = resourceIdFactory; _componentFactory = componentFactory; }