public void UpdateExtendedPackageInfo(PublishedPackage publishedPackage, PackagePart packagePart) { packagePart.DownloadUrl = _oDataContext.GetDownloadUrl(publishedPackage); _packagePartTagUpdater.UpdateTags(publishedPackage, packagePart); _packagePartTaxonomyUpdater.UpdatePackageTaxonomy(publishedPackage, packagePart); _screenshotPartDeleter.DeleteScreenshotsForPackage(publishedPackage.Id, publishedPackage.Version); _screenshotPartCreator.AddScreenshotsForPackage(publishedPackage.Id, publishedPackage.Version); }
public void UpdateTags(PublishedPackage publishedPackage, PackagePart packagePart) { if (publishedPackage.Tags != null) { string whitespaceProcessedTagString = new Regex(@"\s+").Replace(publishedPackage.Tags.Trim(), " "); _tagService.UpdateTagsForContentItem(packagePart.ContentItem, whitespaceProcessedTagString.Split(' ')); } }
public void MapPublishedPackageToPackagePart(PublishedPackage publishedPackage, PackagePart packagePart) { packagePart.PackageID = publishedPackage.Id; packagePart.PackageVersion = publishedPackage.Version; packagePart.Title = string.IsNullOrWhiteSpace(publishedPackage.Title) ? publishedPackage.Id : publishedPackage.Title; packagePart.Description = publishedPackage.Description; packagePart.Summary = publishedPackage.Summary; packagePart.Slug = _packageSlugCreator.CreateSlug(packagePart.PackageID, packagePart.PackageVersion); packagePart.Authors = publishedPackage.Authors; packagePart.DownloadCount = publishedPackage.VersionDownloadCount; packagePart.TotalDownloadCount = publishedPackage.DownloadCount; packagePart.Copyright = publishedPackage.Copyright; packagePart.ProjectUrl = publishedPackage.ProjectUrl; packagePart.LicenseUrl = publishedPackage.LicenseUrl; packagePart.IconUrl = publishedPackage.IconUrl; packagePart.PackageHashAlgorithm = publishedPackage.PackageHashAlgorithm; packagePart.PackageHash = publishedPackage.PackageHash; packagePart.PackageSize = publishedPackage.PackageSize; packagePart.ExternalPackageUrl = publishedPackage.ExternalPackageUrl; packagePart.ReportAbuseUrl = publishedPackage.ReportAbuseUrl; packagePart.LastUpdated = publishedPackage.LastUpdated; packagePart.Price = publishedPackage.Price; packagePart.Created = publishedPackage.Created; packagePart.Published = publishedPackage.Published; packagePart.IsRecommendedVersion = publishedPackage.IsLatestVersion; }
public void UpdatePackageTaxonomy(PublishedPackage publishedPackage, PackagePart packagePart) { int packageTypesTaxonomyId = _taxonomyService.GetTaxonomyByName("Package Types").Id; if (!string.IsNullOrEmpty(publishedPackage.PackageType)) { SetPackagePartTaxonomyToPackageTypeTerm(packageTypesTaxonomyId, packagePart, publishedPackage); } else { SetPackagePartTaxonomyToDefaultTerm(packageTypesTaxonomyId, packagePart); } }
public void ShouldSetTitleToIdWhenPublishedPackageTitleIsNullOrEmpty(string title) { PublishedPackage publishedPackage = new PublishedPackage { Id="SomeId", Title = title}; PackagePart packagePartToMapTo = new PackagePart {Record = new PackagePartRecord()}; SetupRoutePart(packagePartToMapTo); _packagePartMapper.MapPublishedPackageToPackagePart(publishedPackage, packagePartToMapTo); Assert.AreEqual(publishedPackage.Id, packagePartToMapTo.Title, "Id should have been mapped to Title."); }
private void UpdatePackage(PackageLogEntry log, PublishedPackage publishedPackage, PackagePart packagePart) { if (log.Action == PackageLogAction.Update || log.Action == PackageLogAction.RePublish) { _packagePartMapper.MapPublishedPackageToPackagePart(publishedPackage, packagePart); _recommendedVersionUpdater.SetRecommendedVersionFlagsOfOtherPackagesWithSameId(packagePart); } else { packagePart.DownloadCount = publishedPackage.VersionDownloadCount; packagePart.TotalDownloadCount = publishedPackage.DownloadCount; } }
public void ShouldSetDownloadCountToThePublishedPackageVersionDownloadCount() { //The names of these fields don't match up because they were changed on the gallery server feed not long before the sites went live, //and we didn't get the PackagePart updated before they went live. So we didn't want to rename columns on the live sites. PublishedPackage publishedPackage = new PublishedPackage {Id = "PackageId", Version = "Version", VersionDownloadCount = 5}; PackagePart packagePartToMapTo = new PackagePart {Record = new PackagePartRecord()}; SetupRoutePart(packagePartToMapTo); _packagePartMapper.MapPublishedPackageToPackagePart(publishedPackage, packagePartToMapTo); Assert.AreEqual(5, packagePartToMapTo.DownloadCount); }
public void ShouldCallRecommendedVersionUpdater() { PackagePart newPackagePart = new PackagePart { Record = new PackagePartRecord(), PackageID = "foo", PackageVersion = "1.0" }; var contentItem = new ContentItem { ContentType = "Package" }; contentItem.Weld(newPackagePart); PublishedPackage publishedPackage = new PublishedPackage { Id = newPackagePart.PackageID, Version = newPackagePart.PackageVersion }; _mockedOdataContext.SetupGet(oc => oc.Packages).Returns(new[] { publishedPackage }.AsQueryable()); _mockedContentManager.Setup(cm => cm.New(It.IsAny<string>())).Returns(contentItem); _creator.CreateNewPackagePart(new PackageLogEntry { PackageId = newPackagePart.PackageID, PackageVersion = newPackagePart.PackageVersion}); _mockedRecommendedVersionUpdater.Verify(rvu => rvu.SetRecommendedVersionFlagsOfOtherPackagesWithSameId(newPackagePart)); }
public void ShouldCreateNewPackagePartWhenNoExistingOrchardVersionsOfPackageExist() { PackagePart newPackagePart = new PackagePart { Record = new PackagePartRecord(), PackageID = "foo", PackageVersion = "1.0" }; var contentItem = new ContentItem { ContentType = "Package" }; contentItem.Weld(newPackagePart); PublishedPackage publishedPackage = new PublishedPackage { Id = newPackagePart.PackageID, Version = newPackagePart.PackageVersion }; _mockedOdataContext.SetupGet(oc => oc.Packages).Returns(new[] { publishedPackage }.AsQueryable()); _mockedContentManager.Setup(cm => cm.New(It.IsAny<string>())).Returns(contentItem); _mockedPackageService.Setup(ps => ps.PackageExists(newPackagePart.PackageID, newPackagePart.PackageVersion, It.IsAny<VersionOptions>())).Returns(false); _creator.CreateNewPackagePart(new PackageLogEntry { PackageId = newPackagePart.PackageID, PackageVersion = newPackagePart.PackageVersion }); _mockedContentManager.Verify(cm => cm.Create(It.IsAny<ContentItem>(), It.IsAny<VersionOptions>()), Times.Once()); }
private void SetPackagePartTaxonomyToPackageTypeTerm(int packageTypesTaxonomyId, PackagePart packagePart, PublishedPackage publishedPackage) { TermPart packageTypeTerm = _taxonomyService.GetTermByName(packageTypesTaxonomyId, publishedPackage.PackageType); var terms = new List<TermPart> { packageTypeTerm }; if (!string.IsNullOrWhiteSpace(publishedPackage.Categories)) { string category = publishedPackage.Categories.Split(',').Last(); TermPart packageCategoryTerm = _taxonomyService.GetChildren(packageTypeTerm).FirstOrDefault(t => t.Name == category); if (packageCategoryTerm != null) { terms.Add(packageCategoryTerm); } } _taxonomyService.UpdateTerms(packagePart.ContentItem, terms, PACKAGE_TYPE_TAXONOMY_FIELD_NAME); }
public void ShouldLogMessageWhenPackageIsCreated() { PackagePart newPackagePart = new PackagePart { Record = new PackagePartRecord(), PackageID = "foo", PackageVersion = "1.0" }; var contentItem = new ContentItem { ContentType = "Package" }; contentItem.Weld(newPackagePart); PublishedPackage publishedPackage = new PublishedPackage { Id = newPackagePart.PackageID, Version = newPackagePart.PackageVersion }; _mockedOdataContext.SetupGet(oc => oc.Packages).Returns(new[] { publishedPackage }.AsQueryable()); _mockedContentManager.Setup(cm => cm.New(It.IsAny<string>())).Returns(contentItem); _creator.CreateNewPackagePart(new PackageLogEntry { PackageId = newPackagePart.PackageID, PackageVersion = newPackagePart.PackageVersion }); _mockedLogger.Verify(l => l.Log(LogLevel.Information, null, It.Is<string>(s => s.StartsWith("Created PackagePart")), It.IsAny<object[]>()), Times.Once()); }
public void ShouldLogMessageWhenPackagePartAlreadyExists() { PackagePart newPackagePart = new PackagePart { Record = new PackagePartRecord(), PackageID = "foo", PackageVersion = "1.0" }; var contentItem = new ContentItem { ContentType = "Package" }; contentItem.Weld(newPackagePart); PublishedPackage publishedPackage = new PublishedPackage { Id = newPackagePart.PackageID, Version = newPackagePart.PackageVersion }; _mockedOdataContext.SetupGet(oc => oc.Packages).Returns(new[] { publishedPackage }.AsQueryable()); _mockedContentManager.Setup(cm => cm.New(It.IsAny<string>())).Returns(contentItem); _mockedPackageService.Setup(ps => ps.PackageExists(newPackagePart.PackageID, newPackagePart.PackageVersion, It.IsAny<VersionOptions>())) .Returns(true); _creator.CreateNewPackagePart(new PackageLogEntry { PackageId = newPackagePart.PackageID, PackageVersion = newPackagePart.PackageVersion }); _mockedLogger.Verify(l => l.Log(LogLevel.Information, null, It.Is<string>(s => s.Contains("already exists in the gallery")), It.IsAny<object[]>()), Times.Once()); }
public string GetDownloadUrl(PublishedPackage package) { return _context.Value.GetReadStreamUri(package).ToString(); }