Пример #1
0
        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.");
        }
Пример #3
0
        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);
        }
Пример #4
0
 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);
 }
Пример #5
0
 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});
 }