public FolderPluginProviders(string folderPath, Action <TypeFinderCriteriaBuilder> configureFinder, TypeFinderCriteria finderCriteria, FolderPluginOptions options) { if (string.IsNullOrWhiteSpace(folderPath)) { throw new ArgumentNullException(nameof(folderPath)); } _folderPath = folderPath; _options = options ?? new FolderPluginOptions(); if (_options.TypeFinderOptions == null) { _options.TypeFinderOptions = new TypeFinderOptions(); } if (_options.TypeFinderOptions.TypeFinderCriterias == null) { _options.TypeFinderOptions.TypeFinderCriterias = new List <TypeFinderCriteria>(); } if (configureFinder != null) { var builder = new TypeFinderCriteriaBuilder(); configureFinder(builder); var criteria = builder.Build(); _options.TypeFinderOptions.TypeFinderCriterias.Add(criteria); } if (finderCriteria != null) { _options.TypeFinderOptions.TypeFinderCriterias.Add(finderCriteria); } if (_options.TypeFinderCriteria != null) { _options.TypeFinderOptions.TypeFinderCriterias.Add(_options.TypeFinderCriteria); } if (_options.TypeFinderCriterias?.Any() == true) { foreach (var typeFinderCriteria in _options.TypeFinderCriterias) { var crit = typeFinderCriteria.Value; crit.Tags = new List <string>() { typeFinderCriteria.Key }; _options.TypeFinderOptions.TypeFinderCriterias.Add(crit); } } }
public FolderPluginProviders(string folderPath, TypeFinderCriteria finderCriteria, FolderPluginOptions options) : this(folderPath, null, finderCriteria, options) { }
public FolderPluginProviders(string folderPath, Action <TypeFinderCriteriaBuilder> configureFinder, FolderPluginOptions options) : this(folderPath, configureFinder, null, options) { }
public FolderPluginProviders(string folderPath, FolderPluginOptions options) : this(folderPath, null, null, options) { }