public void ResolvePathIsCorrect(string action, Func <UrlHelper, IPackageVersionModel, string> caller) { // Arrange var packageId = "TestPackageId"; var package = new Package { PackageRegistration = new PackageRegistration { Id = packageId }, Version = "1.0.0" }; var urlHelper = TestUtility.MockUrlHelper(); var idModel = new TrivialPackageVersionModel(packageId, version: null); var versionModel = new ListPackageItemViewModel(package, currentUser: null); // Act var idResult = urlHelper.PackageVersionAction(action, idModel); var versionResult = urlHelper.PackageVersionAction(action, versionModel); // Assert // Id Assert.Equal("/packages/" + packageId + "/" + action, idResult); Assert.Equal(urlHelper.PackageVersionAction(action, packageId, version: null), idResult); Assert.Equal(caller(urlHelper, idModel), idResult); // Id and version Assert.Equal("/packages/" + packageId + "/" + package.Version + "/" + action, versionResult); Assert.Equal(urlHelper.PackageVersionAction(action, packageId, package.Version), versionResult); Assert.Equal(urlHelper.PackageVersionActionTemplate(action).Resolve(versionModel), versionResult); Assert.Equal(caller(urlHelper, versionModel), versionResult); }
private static ManagePackageViewModel.VersionReadMeState GetVersionReadMeState( TrivialPackageVersionModel model, UrlHelper url) { var submitUrlTemplate = url.PackageVersionActionTemplate("Edit"); var getReadMeUrlTemplate = url.PackageVersionActionTemplate("GetReadMeMd"); var result = new ManagePackageViewModel.VersionReadMeState( submitUrlTemplate.Resolve(model), getReadMeUrlTemplate.Resolve(model), readMe: null); result.HasEmbeddedReadme = model.HasEmbeddedReadme; return(result); }
public virtual ActionResult UndoPendingEdits(string id, string version) { var package = _packageService.FindPackageByIdAndVersion(id, version); if (package == null) { return(HttpNotFound()); } var model = new TrivialPackageVersionModel { Id = package.PackageRegistration.Id, Version = package.Version, Title = package.Title, }; return(View(model)); }
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; } }
private ManagePackageViewModel SetupInternal( ManagePackageViewModel viewModel, Package package, User currentUser, IReadOnlyList <ReportPackageReason> reasons, UrlHelper url, string readMe, bool isManageDeprecationEnabled) { viewModel.IsCurrentUserAnAdmin = currentUser != null && currentUser.IsAdministrator; viewModel.DeletePackagesRequest = new DeletePackagesRequest { Packages = new List <string> { string.Format( CultureInfo.InvariantCulture, "{0}|{1}", package.PackageRegistration.Id, package.Version) }, ReasonChoices = reasons }; viewModel.IsLocked = package.PackageRegistration.IsLocked; viewModel.IsManageDeprecationEnabled = isManageDeprecationEnabled; var versionSelectPackages = package.PackageRegistration.Packages .Where(p => p.PackageStatusKey == PackageStatus.Available || p.PackageStatusKey == PackageStatus.Validating) .OrderByDescending(p => new NuGetVersion(p.Version)) .ToList(); var versionSelectList = new List <SelectListItem>(); viewModel.VersionSelectList = versionSelectList; var versionListedStateDictionary = new Dictionary <string, ManagePackageViewModel.VersionListedState>(); viewModel.VersionListedStateDictionary = versionListedStateDictionary; var versionReadMeStateDictionary = new Dictionary <string, ManagePackageViewModel.VersionReadMeState>(); viewModel.VersionReadMeStateDictionary = versionReadMeStateDictionary; var versionDeprecationStateDictionary = new Dictionary <string, ManagePackageViewModel.VersionDeprecationState>(); viewModel.VersionDeprecationStateDictionary = versionDeprecationStateDictionary; 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 ManagePackageViewModel.VersionListedState(versionSelectPackage.Listed, versionSelectPackage.DownloadCount)); var model = new TrivialPackageVersionModel(versionSelectPackage); versionReadMeStateDictionary.Add( value, GetVersionReadMeState(model, url)); versionDeprecationStateDictionary.Add( value, GetVersionDeprecationState(versionSelectPackage.Deprecations.SingleOrDefault(), text)); } // Update edit model with the readme.md data. viewModel.ReadMe = new EditPackageVersionReadMeRequest(); if (package.HasReadMe && package.EmbeddedReadmeType == EmbeddedReadmeFileType.Absent) { viewModel.ReadMe.ReadMe.SourceType = ReadMeService.TypeWritten; viewModel.ReadMe.ReadMe.SourceText = readMe; } return(viewModel); }
public virtual ActionResult UndoPendingEdits(string id, string version) { var package = _packageService.FindPackageByIdAndVersion(id, version); if (package == null) { return HttpNotFound(); } var model = new TrivialPackageVersionModel { Id = package.PackageRegistration.Id, Version = package.Version, Title = package.Title, }; return View(model); }