public FileSpecifications(IFileSpecificationProvider defaultFallBackProvider, params IFileSpecificationProvider[] fileSpecProvider) { var defaultProviders = new List <IFileSpecificationProvider> { new ImageSpecificationProvider(), new VideoSpecificationProvider(), new AudioSpecificationProvider(), new PdfSpecificationProvider(), new DefaultFileSpecificationProvider() }; foreach (var provider in fileSpecProvider.Union(defaultProviders).Distinct()) { _fileSpecifiations.Add(provider); } _defaultFallbackProvider = defaultFallBackProvider; }