コード例 #1
0
        public PackageQueryService(IPackageCacheService packageCacheService, IRepositoryCacheService repositoryCacheService)
        {
            Argument.IsNotNull(() => packageCacheService);
            Argument.IsNotNull(() => repositoryCacheService);

            _packageCacheService    = packageCacheService;
            _repositoryCacheService = repositoryCacheService;
        }
コード例 #2
0
        public PackageQueryService(IPackageCacheService packageCacheService, IRepositoryCacheService repositoryCacheService)
        {
            Argument.IsNotNull(() => packageCacheService);
            Argument.IsNotNull(() => repositoryCacheService);

            _packageCacheService = packageCacheService;
            _repositoryCacheService = repositoryCacheService;
        }
        public PackagesUpdatesSearcherService(IRepositoryService repositoryService, IPackageCacheService packageCacheService,
                                              IRepositoryCacheService repositoryCacheService)
        {
            Argument.IsNotNull(() => repositoryService);
            Argument.IsNotNull(() => repositoryCacheService);

            _repositoryService      = repositoryService;
            _packageCacheService    = packageCacheService;
            _repositoryCacheService = repositoryCacheService;
        }
コード例 #4
0
        public PackagesUpdatesSearcherService(IRepositoryService repositoryService, IPackageCacheService packageCacheService,
            IRepositoryCacheService repositoryCacheService)
        {
            Argument.IsNotNull(() => repositoryService);
            Argument.IsNotNull(() => repositoryCacheService);

            _repositoryService = repositoryService;
            _packageCacheService = packageCacheService;
            _repositoryCacheService = repositoryCacheService;
        }
コード例 #5
0
        public PackageManager(IRepositoryService repositoryService, INuGetConfigurationService nuGetConfigurationService,
            ILogger logger, IPackageCacheService packageCacheService, IRepositoryCacheService repositoryCacheService)
            : this(repositoryService.GetSourceAggregateRepository(), repositoryCacheService, nuGetConfigurationService.GetDestinationFolder())
        {
            Argument.IsNotNull(() => repositoryService);
            Argument.IsNotNull(() => nuGetConfigurationService);
            Argument.IsNotNull(() => logger);
            Argument.IsNotNull(() => packageCacheService);

            _packageCacheService = packageCacheService;
            Logger = logger;
        }
コード例 #6
0
        public PackageManager(IRepositoryService repositoryService, INuGetConfigurationService nuGetConfigurationService,
                              ILogger logger, IPackageCacheService packageCacheService, IRepositoryCacheService repositoryCacheService)
            : this(repositoryService.GetSourceAggregateRepository(), repositoryCacheService, nuGetConfigurationService.GetDestinationFolder())
        {
            Argument.IsNotNull(() => repositoryService);
            Argument.IsNotNull(() => nuGetConfigurationService);
            Argument.IsNotNull(() => logger);
            Argument.IsNotNull(() => packageCacheService);

            _packageCacheService = packageCacheService;
            Logger = logger;
        }
コード例 #7
0
        public PackagesUpdatesSearcherService(IRepositoryService repositoryService, IAuthenticationSilencerService authenticationSilencerService, IPackageCacheService packageCacheService,
            IRepositoryCacheService repositoryCacheService)
        {
            Argument.IsNotNull(() => repositoryService);
            Argument.IsNotNull(() => authenticationSilencerService);
            Argument.IsNotNull(() => repositoryCacheService);

            _repositoryService = repositoryService;
            _authenticationSilencerService = authenticationSilencerService;
            _packageCacheService = packageCacheService;
            _repositoryCacheService = repositoryCacheService;
        }
コード例 #8
0
        public PackagesUpdatesSearcherService(IRepositoryService repositoryService, IAuthenticationSilencerService authenticationSilencerService, IPackageCacheService packageCacheService,
                                              IRepositoryCacheService repositoryCacheService)
        {
            Argument.IsNotNull(() => repositoryService);
            Argument.IsNotNull(() => authenticationSilencerService);
            Argument.IsNotNull(() => repositoryCacheService);

            _repositoryService             = repositoryService;
            _authenticationSilencerService = authenticationSilencerService;
            _packageCacheService           = packageCacheService;
            _repositoryCacheService        = repositoryCacheService;
        }
コード例 #9
0
ファイル: MirrorService.cs プロジェクト: cqgis/BaGet
 public MirrorService(
     INuGetClient client,
     IPackageCacheService localPackages,
     IPackageDownloader downloader,
     ILogger <MirrorService> logger,
     MirrorOptions options)
 {
     _startLock          = new object();
     _downloads          = new Dictionary <PackageIdentity, Task>();
     _localPackages      = localPackages ?? throw new ArgumentNullException(nameof(localPackages));
     _downloader         = downloader ?? throw new ArgumentNullException(nameof(downloader));
     _logger             = logger ?? throw new ArgumentNullException(nameof(logger));
     this._loggerAdapter = new NuGetLoggerAdapter <MirrorService>(_logger);
     _sourceRepository   = client.GetRepository(options.UpstreamIndex);
 }
コード例 #10
0
        /// <summary>
        /// Look for the INupkg instance in the cache first. If it's in the cache, return it.
        /// Otherwise, download the package from the storage service and store it into the cache.
        /// </summary>
        public static async Task<INupkg> GetPackageFromCacheOrDownloadIt(
            Package package,
            IPackageCacheService cacheService,
            IPackageFileService packageFileService)
        {
            Debug.Assert(package != null);
            Debug.Assert(cacheService != null);
            Debug.Assert(packageFileService != null);

            string cacheKey = CreateCacheKey(package.PackageRegistration.Id, package.Version);
            byte[] buffer = cacheService.GetBytes(cacheKey);
            if (buffer == null)
            {
                // In the past, some very old packages can specify an external package binary not hosted at nuget.org.
                // We no longer allow that today.
                if (!String.IsNullOrEmpty(package.ExternalPackageUrl))
                {
                    var httpClient = new HttpClient();
                    using (var responseStream = await httpClient.GetStreamAsync(package.ExternalPackageUrl))
                    {
                        buffer = responseStream.ReadAllBytes();
                    }
                }
                else
                {
                    using (Stream stream = await packageFileService.DownloadPackageFileAsync(package))
                    {
                        if (stream == null)
                        {
                            throw new InvalidOperationException("Couldn't download the package from the storage.");
                        }

                        buffer = stream.ReadAllBytes();
                    }
                }

                cacheService.SetBytes(cacheKey, buffer);
            }

            return new Nupkg(new MemoryStream(buffer), leaveOpen: false);
        }