| File: Providers\PackageMetadataResourceV3Provider.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Protocol\NuGet.Protocol.csproj (NuGet.Protocol) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. #nullable disable using System; using System.Threading; using System.Threading.Tasks; using NuGet.Common; using NuGet.Protocol.Core.Types; namespace NuGet.Protocol { public class PackageMetadataResourceV3Provider : ResourceProvider { private readonly IEnvironmentVariableReader _environmentVariableReader; public PackageMetadataResourceV3Provider() : this(null) { } internal PackageMetadataResourceV3Provider(IEnvironmentVariableReader environmentVariableReader) : base(typeof(PackageMetadataResource), nameof(PackageMetadataResourceV3Provider), nameof(PackageMetadataResourceV2FeedProvider)) { _environmentVariableReader = environmentVariableReader; } public override async Task<Tuple<bool, INuGetResource>> TryCreate(SourceRepository source, CancellationToken token) { PackageMetadataResourceV3 curResource = null; if (await source.GetResourceAsync<ServiceIndexResourceV3>(token) != null) { var regResource = await source.GetResourceAsync<RegistrationResourceV3>(token); var reportAbuseResource = await source.GetResourceAsync<ReportAbuseResourceV3>(token); var readmeResource = await source.GetResourceAsync<ReadmeUriTemplateResource>(token); var packageDetailsUriResource = await source.GetResourceAsync<PackageDetailsUriResourceV3>(token); var httpSourceResource = await source.GetResourceAsync<HttpSourceResource>(token); // construct a new resource curResource = new PackageMetadataResourceV3( httpSourceResource.HttpSource, regResource, reportAbuseResource, packageDetailsUriResource, readmeResource, _environmentVariableReader); } return new Tuple<bool, INuGetResource>(curResource != null, curResource); } } }