public PackageValidator Create( string galleryUrl, string indexUrl, string packageBaseAddress, StorageFactory auditingStorageFactory, IEnumerable <EndpointFactory.Input> endpointInputs, Func <HttpMessageHandler> messageHandlerFactory, bool requireSignature = false, bool verbose = false) { var validatorFactory = new ValidatorFactoryFactory(_loggerFactory).Create(galleryUrl, indexUrl, packageBaseAddress); var endpointFactory = new EndpointFactory(validatorFactory, messageHandlerFactory, _loggerFactory); var validators = new List <IAggregateValidator>(); validators.AddRange(endpointInputs.Select(e => endpointFactory.Create(e))); validators.Add(new CatalogAggregateValidator(validatorFactory, requireSignature)); return(new PackageValidator(validators, auditingStorageFactory, _loggerFactory.CreateLogger <PackageValidator>())); }