| File: NuGetProjectAction.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.PackageManagement\NuGet.PackageManagement.csproj (NuGet.PackageManagement) |
// 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.Diagnostics; using NuGet.Packaging.Core; using NuGet.ProjectManagement; using NuGet.Protocol.Core.Types; using NuGet.Versioning; namespace NuGet.PackageManagement { /// <summary> /// NuGetProjectAction /// </summary> [DebuggerDisplay("{NuGetProjectActionType} {PackageIdentity}")] public class NuGetProjectAction { /// <summary> /// PackageIdentity on which the action is performed /// </summary> public PackageIdentity PackageIdentity { get; private set; } public VersionRange VersionRange { get; private set; } /// <summary> /// Type of NuGetProjectAction. Install/Uninstall /// </summary> public NuGetProjectActionType NuGetProjectActionType { get; private set; } /// <summary> /// For NuGetProjectActionType.Install, SourceRepository from which the package should be installed /// For NuGetProjectActionType.Uninstall, this will be null /// </summary> public SourceRepository SourceRepository { get; private set; } /// <summary> /// NugetProject for which the action is created /// </summary> public NuGetProject Project { get; private set; } protected NuGetProjectAction(PackageIdentity packageIdentity, NuGetProjectActionType nuGetProjectActionType, NuGetProject project, SourceRepository sourceRepository = null) : this(packageIdentity, nuGetProjectActionType, project, sourceRepository, versionRange: null) { } protected NuGetProjectAction(PackageIdentity packageIdentity, NuGetProjectActionType nuGetProjectActionType, NuGetProject project, SourceRepository sourceRepository, VersionRange versionRange) { if (packageIdentity == null) { throw new ArgumentNullException(nameof(packageIdentity)); } PackageIdentity = packageIdentity; NuGetProjectActionType = nuGetProjectActionType; SourceRepository = sourceRepository; Project = project; VersionRange = versionRange; } public static NuGetProjectAction CreateInstallProjectAction(PackageIdentity packageIdentity, SourceRepository sourceRepository, NuGetProject project) { return new NuGetProjectAction(packageIdentity, NuGetProjectActionType.Install, project, sourceRepository); } public static NuGetProjectAction CreateInstallProjectAction(PackageIdentity packageIdentity, SourceRepository sourceRepository, NuGetProject project, VersionRange versionRange) { return new NuGetProjectAction(packageIdentity, NuGetProjectActionType.Install, project, sourceRepository, versionRange); } public static NuGetProjectAction CreateUninstallProjectAction(PackageIdentity packageIdentity, NuGetProject project) { return new NuGetProjectAction(packageIdentity, NuGetProjectActionType.Uninstall, project, null); } } }