public PackageToPrepare(Package package, PackageDeprecationContext deprecation)
     : this(package, unlist : false, deprecation : deprecation)
 {
 }
 public PackageToPrepare(Package package, bool unlist, PackageDeprecationContext deprecation)
 {
     Package     = package;
     Unlist      = unlist;
     Deprecation = deprecation;
 }
        public async Task DeprecateAsync(string id, IReadOnlyCollection <string> versions, PackageDeprecationContext context, ITestOutputHelper logger)
        {
            var galleryEndpoint = GetGalleryServiceBaseUrl();
            var url             = $"{galleryEndpoint}/api/v2/package/{id}/deprecations";

            var body = new
            {
                versions,
                isLegacy                = context?.IsLegacy ?? false,
                hasCriticalBugs         = context?.HasCriticalBugs ?? false,
                isOther                 = context?.IsOther ?? false,
                alternatePackageId      = context?.AlternatePackageId,
                alternatePackageVersion = context?.AlternatePackageVersion,
                message                 = context?.Message
            };

            var bodyJson = JsonConvert.SerializeObject(body);

            await SendAsync(
                HttpMethod.Put,
                url,
                logger,
                new StringContent(bodyJson, Encoding.UTF8, "application/json"));
        }