public DeletePackageViewModel(Package package, ReportPackageReason[] reportOtherPackageReasons) : base(package) { DeletePackagesRequest = new DeletePackagesRequest { Packages = new List<string> { string.Format(CultureInfo.InvariantCulture, "{0}|{1}", package.PackageRegistration.Id, package.Version) }, ReasonChoices = reportOtherPackageReasons }; }
public DeletePackageViewModel(Package package, ReportPackageReason[] reportOtherPackageReasons) : base(package) { DeletePackagesRequest = new DeletePackagesRequest { Packages = new List <string> { string.Format(CultureInfo.InvariantCulture, "{0}|{1}", package.PackageRegistration.Id, package.Version) }, ReasonChoices = reportOtherPackageReasons }; }
public virtual async Task <ActionResult> Delete(DeletePackagesRequest deletePackagesRequest) { var packagesToDelete = new List <Package>(); if (ModelState.IsValid) { // Get the packages to delete foreach (var package in deletePackagesRequest.Packages) { var split = package.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); if (split.Length == 2) { var packageToDelete = _packageService.FindPackageByIdAndVersion(split[0], split[1], allowPrerelease: true); if (packageToDelete != null) { packagesToDelete.Add(packageToDelete); } } } // Perform delete if (deletePackagesRequest.SoftDelete) { await _packageDeleteService.SoftDeletePackagesAsync( packagesToDelete, GetCurrentUser(), EnumHelper.GetDescription(deletePackagesRequest.Reason.Value), deletePackagesRequest.Signature); } else { await _packageDeleteService.HardDeletePackagesAsync( packagesToDelete, GetCurrentUser(), EnumHelper.GetDescription(deletePackagesRequest.Reason.Value), deletePackagesRequest.Signature, deletePackagesRequest.DeleteEmptyPackageRegistration); } // Redirect out TempData["Message"] = "We're performing the package delete right now. It may take a while for this change to propagate through our system."; return(Redirect("/")); } if (!deletePackagesRequest.Packages.Any()) { return(HttpNotFound()); } var firstPackage = packagesToDelete.First(); return(Delete(firstPackage.PackageRegistration.Id, firstPackage.Version)); }
public DeletePackageViewModel(Package package, IReadOnlyList <ReportPackageReason> reasons) : base(package, package.PackageRegistration.Packages.OrderByDescending(p => new NuGetVersion(p.Version))) { DeletePackagesRequest = new DeletePackagesRequest { Packages = new List <string> { string.Format( CultureInfo.InvariantCulture, "{0}|{1}", package.PackageRegistration.Id, package.Version) }, ReasonChoices = reasons }; }
public DeletePackageViewModel(Package package, User currentUser, IReadOnlyList <ReportPackageReason> reasons) : base(package, currentUser, null) { DeletePackagesRequest = new DeletePackagesRequest { Packages = new List <string> { string.Format( CultureInfo.InvariantCulture, "{0}|{1}", package.PackageRegistration.Id, package.Version) }, ReasonChoices = reasons }; IsLocked = package.PackageRegistration.IsLocked; }
public ManagePackageViewModel(Package package, User currentUser, IReadOnlyList <ReportPackageReason> reasons, UrlHelper url, string readMe, bool isManageDeprecationEnabled) : base(package, currentUser) { IsCurrentUserAnAdmin = currentUser != null && currentUser.IsAdministrator; DeletePackagesRequest = new DeletePackagesRequest { Packages = new List <string> { string.Format( CultureInfo.InvariantCulture, "{0}|{1}", package.PackageRegistration.Id, package.Version) }, ReasonChoices = reasons }; IsLocked = package.PackageRegistration.IsLocked; IsManageDeprecationEnabled = isManageDeprecationEnabled; var versionSelectPackages = package.PackageRegistration.Packages .Where(p => p.PackageStatusKey == PackageStatus.Available || p.PackageStatusKey == PackageStatus.Validating) .OrderByDescending(p => new NuGetVersion(p.Version)) .ToList(); VersionSelectList = new List <SelectListItem>(); VersionListedStateDictionary = new Dictionary <string, VersionListedState>(); VersionReadMeStateDictionary = new Dictionary <string, VersionReadMeState>(); VersionDeprecationStateDictionary = new Dictionary <string, VersionDeprecationState>(); var submitUrlTemplate = url.PackageVersionActionTemplate("Edit"); var getReadMeUrlTemplate = url.PackageVersionActionTemplate("GetReadMeMd"); foreach (var versionSelectPackage in versionSelectPackages) { var text = PackageHelper.GetSelectListText(versionSelectPackage); var value = NuGetVersionFormatter.Normalize(versionSelectPackage.Version); VersionSelectList.Add(new SelectListItem { Text = text, Value = value, Selected = package == versionSelectPackage }); VersionListedStateDictionary.Add( value, new VersionListedState(versionSelectPackage)); var model = new TrivialPackageVersionModel(versionSelectPackage); VersionReadMeStateDictionary.Add( value, new VersionReadMeState( submitUrlTemplate.Resolve(model), getReadMeUrlTemplate.Resolve(model), null)); VersionDeprecationStateDictionary.Add( value, new VersionDeprecationState(versionSelectPackage, text)); } // Update edit model with the readme.md data. ReadMe = new EditPackageVersionReadMeRequest(); if (package.HasReadMe) { ReadMe.ReadMe.SourceType = ReadMeService.TypeWritten; ReadMe.ReadMe.SourceText = readMe; } }
public virtual async Task<ActionResult> Delete(DeletePackagesRequest deletePackagesRequest) { var packagesToDelete = new List<Package>(); if (ModelState.IsValid) { // Get the packages to delete foreach (var package in deletePackagesRequest.Packages) { var split = package.Split(new[] {'|'}, StringSplitOptions.RemoveEmptyEntries); if (split.Length == 2) { var packageToDelete = _packageService.FindPackageByIdAndVersion(split[0], split[1], allowPrerelease: true); if (packageToDelete != null) { packagesToDelete.Add(packageToDelete); } } } // Perform delete if (deletePackagesRequest.SoftDelete) { await _packageDeleteService.SoftDeletePackagesAsync( packagesToDelete, GetCurrentUser(), EnumHelper.GetDescription(deletePackagesRequest.Reason.Value), deletePackagesRequest.Signature); } else { await _packageDeleteService.HardDeletePackagesAsync( packagesToDelete, GetCurrentUser(), EnumHelper.GetDescription(deletePackagesRequest.Reason.Value), deletePackagesRequest.Signature, deletePackagesRequest.DeleteEmptyPackageRegistration); } // Redirect out TempData["Message"] = "We're performing the package delete right now. It may take a while for this change to propagate through our system."; return Redirect("/"); } if (!deletePackagesRequest.Packages.Any()) { return HttpNotFound(); } var firstPackage = packagesToDelete.First(); return Delete(firstPackage.PackageRegistration.Id, firstPackage.Version); }