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);
 }
예제 #2
0
 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(' '));
     }
 }
예제 #3
0
        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.");
        }
예제 #6
0
 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());
        }
예제 #13
0
 public string GetDownloadUrl(PublishedPackage package) {
     return _context.Value.GetReadStreamUri(package).ToString();
 }