| File: Installers\NuGet\IDownloader.cs | Web Access |
| Project: src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Edge\Microsoft.TemplateEngine.Edge.csproj (Microsoft.TemplateEngine.Edge) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.TemplateEngine.Abstractions.Installer; namespace Microsoft.TemplateEngine.Edge.Installers.NuGet { internal interface IDownloader { Task<NuGetPackageInfo> DownloadPackageAsync(string downloadPath, string identifier, string? version = null, IEnumerable<string>? additionalSources = null, bool force = false, CancellationToken cancellationToken = default); } internal class NuGetPackageInfo { public NuGetPackageInfo(string author, string owners, bool reserved, string fullPath, string? nuGetSource, string packageIdentifier, string packageVersion, IReadOnlyList<VulnerabilityInfo> vulnerabilities) { Author = author; Owners = owners; Reserved = reserved; FullPath = fullPath; NuGetSource = nuGetSource; PackageIdentifier = packageIdentifier; PackageVersion = packageVersion; PackageVulnerabilities = vulnerabilities; } public string Author { get; } public string Owners { get; } public bool Reserved { get; } public string FullPath { get; } public string? NuGetSource { get; } public string PackageIdentifier { get; } public string PackageVersion { get; } public IReadOnlyList<VulnerabilityInfo> PackageVulnerabilities { get; } internal NuGetPackageInfo WithFullPath(string newFullPath) { return new NuGetPackageInfo( Author, Owners, Reserved, newFullPath, NuGetSource, PackageIdentifier, PackageVersion, PackageVulnerabilities); } } }