public ServerPackageRepository(
            string path,
            IHashProvider hashProvider,
            ISettingsProvider settingsProvider = null,
            Logging.ILogger logger             = null)
        {
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException(nameof(path));
            }

            if (hashProvider == null)
            {
                throw new ArgumentNullException(nameof(hashProvider));
            }

            _fileSystem         = new PhysicalFileSystem(path);
            _runBackgroundTasks = true;
            _settingsProvider   = settingsProvider ?? new DefaultSettingsProvider();
            _logger             = logger ?? new TraceLogger();
            _serverPackageCache = InitializeServerPackageStore();
            _serverPackageStore = new ServerPackageStore(
                _fileSystem,
                new ExpandedPackageRepository(_fileSystem, hashProvider),
                _logger);
        }
Пример #2
0
        internal ServerPackageRepository(
            IFileSystem fileSystem,
            bool runBackgroundTasks,
            ExpandedPackageRepository innerRepository,
            ISettingsProvider settingsProvider = null,
            Logging.ILogger logger             = null)
        {
            if (fileSystem == null)
            {
                throw new ArgumentNullException(nameof(fileSystem));
            }

            if (innerRepository == null)
            {
                throw new ArgumentNullException(nameof(innerRepository));
            }

            _fileSystem         = fileSystem;
            _runBackgroundTasks = runBackgroundTasks;
            _settingsProvider   = settingsProvider ?? new DefaultSettingsProvider();
            _logger             = logger ?? new TraceLogger();
            _serverPackageCache = InitializeServerPackageStore();
            _serverPackageStore = new ServerPackageStore(
                _fileSystem,
                innerRepository,
                _logger);
        }