public void MapViewModelToPackage(PackageViewModel packageViewModel, Package packageToMapTo) { packageToMapTo.Id = packageViewModel.PackageId; packageToMapTo.Version = packageViewModel.PackageVersion; packageToMapTo.Title = packageViewModel.Title; packageToMapTo.Summary = packageViewModel.Summary; packageToMapTo.Description = packageViewModel.Description; packageToMapTo.Authors = packageViewModel.Authors; packageToMapTo.LicenseUrl = packageViewModel.LicenseURL; packageToMapTo.PackageType = packageViewModel.PackageType; packageToMapTo.Categories = packageViewModel.PrimaryCategory; packageToMapTo.IsLatestVersion = packageViewModel.IsLatestVersion; packageToMapTo.ExternalPackageUrl = packageViewModel.ExternalPackageUrl; packageToMapTo.ProjectUrl = packageViewModel.ProjectUrl; packageToMapTo.RequireLicenseAcceptance = packageViewModel.RequireLicenseAcceptance; packageToMapTo.Copyright = packageViewModel.Copyright; packageToMapTo.LastUpdated = _clock.UtcNow; packageToMapTo.Tags = CleanTags(packageViewModel.Tags); }
public void BasicPropertiesShouldBeMapped() { PackageViewModel packageViewModelToMapFrom = new PackageViewModel { PackageId = "packageId", PackageVersion = "packageVersion", Title = "title", Summary = "summary", Description = "description", Authors = "authors", LicenseURL = "licenseUrl", PackageType = "packageType", IsLatestVersion = true, ExternalPackageUrl = "external", ProjectUrl = "project", RequireLicenseAcceptance = false, Copyright = "copy", }; Package packageToMapTo = new Package(); _packageViewModelMapper.MapViewModelToPackage(packageViewModelToMapFrom, packageToMapTo); Assert.AreEqual(packageViewModelToMapFrom.PackageId, packageToMapTo.Id, "Id was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.PackageVersion, packageToMapTo.Version, "Version was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.Title, packageToMapTo.Title, "Title was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.Summary, packageToMapTo.Summary, "Summary was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.Description, packageToMapTo.Description, "Description was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.Authors, packageToMapTo.Authors, "Authors was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.LicenseURL, packageToMapTo.LicenseUrl, "LicenseUrl was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.PackageType, packageToMapTo.PackageType, "PackageType was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.IsLatestVersion, packageToMapTo.IsLatestVersion, "IsLatestVersion was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.ExternalPackageUrl, packageToMapTo.ExternalPackageUrl, "ExternalPackageUrl was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.ProjectUrl, packageToMapTo.ProjectUrl, "ProjectUrl was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.RequireLicenseAcceptance, packageToMapTo.RequireLicenseAcceptance, "RequireLicenseAcceptance was not mapped correctly."); Assert.AreEqual(packageViewModelToMapFrom.Copyright, packageToMapTo.Copyright, "Copyright was not mapped correctly."); }
private void SetViewModelTaxonomyFields(PackageViewModel packageViewModel) { int taxonomyId = _taxonomyService.GetTaxonomyByName("Package Types").Id; IEnumerable<TermPart> parentTerms = _taxonomyService.GetTerms(taxonomyId).Where(t => t.GetLevels() == 0); packageViewModel.PackageTypes = parentTerms.Select(t => t.Name); var parentTerm = string.IsNullOrEmpty(packageViewModel.PackageType) ? parentTerms.First() : parentTerms.Single(t => t.Name == packageViewModel.PackageType); packageViewModel.PackageCategories = _taxonomyService.GetChildren(parentTerm).Select(t => t.Name).OrderBy(category => category); }
private void ValidateParameterFormatsForEdit(PackageViewModel model) { _parameterFormatValidator.ValidatePackageIdFormat(model.PackageId); _parameterFormatValidator.ValidatePackageVersionFormat(model.PackageVersion); _parameterFormatValidator.ValidateUriFormat(model.ExternalPackageUrl, UriKind.Absolute); _parameterFormatValidator.ValidateUriFormat(model.LicenseURL, UriKind.Absolute); _parameterFormatValidator.ValidateUriFormat(model.ProjectUrl, UriKind.Absolute); _parameterFormatValidator.ValidateUriFormat(model.ReportAbuseUrl, UriKind.Absolute); }
public ActionResult Edit(PackageViewModel packageViewModelToUpdate) { try { ValidateParameterFormatsForEdit(packageViewModelToUpdate); } catch (UriFormatException ex) { _services.Notifier.Error(T("The URL '{0}' is not valid.", ex.Message)); SetViewModelTaxonomyFields(packageViewModelToUpdate); return View(packageViewModelToUpdate); } if (!_userPackageAuthorizer.AuthorizedToEditPackage(packageViewModelToUpdate.PackageId)) { return new HttpUnauthorizedAccessToPackageResult(packageViewModelToUpdate.PackageId); } if (packageViewModelToUpdate.IsExternalPackage && !Uri.IsWellFormedUriString (packageViewModelToUpdate.ExternalPackageUrl, UriKind.Absolute)) { ModelState.AddModelError("ExternalPackageUrl", "The External Package URL is not valid."); } if (!ModelState.IsValid) { SetViewModelTaxonomyFields(packageViewModelToUpdate); return View(packageViewModelToUpdate); } Package package = _galleryPackageService.GetPackage(packageViewModelToUpdate.PackageId, packageViewModelToUpdate.PackageVersion); _packageViewModelMapper.MapViewModelToPackage(packageViewModelToUpdate, package); _galleryPackageService.UpdatePackage(package); string action = packageViewModelToUpdate.IsNewPackage ? "New" : "Edit"; return RedirectToAction(action, "UploadPackageLogoAndScreenshots", new { packageId = package.Id, packageVersion = package.Version}); }