public PackageDeleteService(
            IEntityRepository <Package> packageRepository,
            IEntityRepository <PackageRegistration> packageRegistrationRepository,
            IEntityRepository <PackageDelete> packageDeletesRepository,
            IEntitiesContext entitiesContext,
            IPackageService packageService,
            IIndexingService indexingService,
            IPackageFileService packageFileService,
            IAuditingService auditingService,
            IPackageDeleteConfiguration config,
            IStatisticsService statisticsService,
            ITelemetryService telemetryService,
            ISymbolPackageFileService symbolPackageFileService,
            ISymbolPackageService symbolPackageService,
            IEntityRepository <SymbolPackage> symbolPackageRepository,
            ICoreLicenseFileService coreLicenseFileService)
        {
            _packageRepository             = packageRepository ?? throw new ArgumentNullException(nameof(packageRepository));
            _packageRegistrationRepository = packageRegistrationRepository ?? throw new ArgumentNullException(nameof(packageRegistrationRepository));
            _packageDeletesRepository      = packageDeletesRepository ?? throw new ArgumentNullException(nameof(packageDeletesRepository));
            _entitiesContext          = entitiesContext ?? throw new ArgumentNullException(nameof(entitiesContext));
            _packageService           = packageService ?? throw new ArgumentNullException(nameof(packageService));
            _indexingService          = indexingService ?? throw new ArgumentNullException(nameof(indexingService));
            _packageFileService       = packageFileService ?? throw new ArgumentNullException(nameof(packageFileService));
            _auditingService          = auditingService ?? throw new ArgumentNullException(nameof(auditingService));
            _config                   = config ?? throw new ArgumentNullException(nameof(config));
            _statisticsService        = statisticsService ?? throw new ArgumentNullException(nameof(statisticsService));
            _telemetryService         = telemetryService ?? throw new ArgumentNullException(nameof(telemetryService));
            _symbolPackageFileService = symbolPackageFileService ?? throw new ArgumentNullException(nameof(symbolPackageFileService));
            _symbolPackageService     = symbolPackageService ?? throw new ArgumentNullException(nameof(symbolPackageService));
            _symbolPackageRepository  = symbolPackageRepository ?? throw new ArgumentNullException(nameof(symbolPackageRepository));
            _coreLicenseFileService   = coreLicenseFileService ?? throw new ArgumentNullException(nameof(coreLicenseFileService));

            if (config.HourLimitWithMaximumDownloads.HasValue &&
                config.StatisticsUpdateFrequencyInHours.HasValue &&
                config.HourLimitWithMaximumDownloads.Value <= config.StatisticsUpdateFrequencyInHours.Value)
            {
                throw new ArgumentException($"{nameof(_config.StatisticsUpdateFrequencyInHours)} must be less than " +
                                            $"{nameof(_config.HourLimitWithMaximumDownloads)}.",
                                            nameof(config));
            }
        }
 public TestPackageDeleteService(
     IEntityRepository <Package> packageRepository,
     IEntityRepository <PackageRegistration> packageRegistrationRepository,
     IEntityRepository <PackageDelete> packageDeletesRepository,
     IEntitiesContext entitiesContext,
     IPackageService packageService,
     IIndexingService indexingService,
     IPackageFileService packageFileService,
     IAuditingService auditingService,
     IPackageDeleteConfiguration config) : base(
         packageRepository,
         packageRegistrationRepository,
         packageDeletesRepository,
         entitiesContext,
         packageService,
         indexingService,
         packageFileService,
         auditingService,
         config)
 {
 }