public void ShouldSetPackageLogActionToGivenAction() { const PackageLogAction expectedAction = PackageLogAction.Update; _packageLogEntryCreator.Create("id", "version", expectedAction); _mockedPackageLogEntryRepository.Verify(pler => pler.Create(It.Is <PackageLogEntry>(ple => ple.Action == expectedAction)), Times.Once(), "Action was not set to the given PackageLogAction."); }
public void ShouldUpdatePackagePartAndExtendedInfoForUpdateOrRePublishLogAction(PackageLogAction packageLogAction) { PackageLogEntry entryToProcess = new PackageLogEntry { Action = packageLogAction }; _mockedPackageLogEntryService.Setup(ples => ples.GetUnprocessedLogEntries()).Returns(new[] { entryToProcess }); _packageSynchronizer.Synchronize(); _mockedPackagePartUpdater.Verify(ppu => ppu.ModifyExistingPackagePart(entryToProcess, true), Times.Once(), "PackagePart and extended info should have been updated."); }
public void Create(string packageId, string packageVersion, PackageLogAction action) { if (string.IsNullOrWhiteSpace(packageId)) { throw new ArgumentNullException("packageId"); } if (string.IsNullOrWhiteSpace(packageVersion)) { throw new ArgumentNullException("packageVersion"); } var packageLogEntry = new PackageLogEntry { PackageId = packageId, PackageVersion = packageVersion, DateLogged = _dateTime.UtcNow, Action = action }; _packageLogEntryRepository.Create(packageLogEntry); }
public void PublishPackage(string key, string packageId, string packageVersion, PackageLogAction logActionForExistingPackage) { var packageLogAction = PackageLogAction.Create; _packageAuthenticator.EnsureKeyCanAccessPackage(key, packageId, packageVersion); Package package = _packageRepository.Collection .Include(p => p.Dependencies) .Include(p => p.Screenshots) .SingleOrDefault(p => p.Id == packageId && p.Version == packageVersion); if (package == null) { throw new PackageDoesNotExistException(packageId, packageVersion); } package.Published = _dateTime.UtcNow; _packageRepository.Update(package); var publishedPackage = _mapper.Map <Package, PublishedPackage>(package); var existingPublishedPackageCount = _publishedPackageRepository.Collection.Count(pp => pp.Id == packageId && pp.Version == packageVersion); if (existingPublishedPackageCount > 0) { _publishedScreenshotRespository.DeleteMany(ps => ps.PublishedPackageId == packageId && ps.PublishedPackageVersion == packageVersion); _publishedPackageRepository.DeleteMany(pp => pp.Id == packageId && pp.Version == packageVersion); packageLogAction = logActionForExistingPackage; } if (!_publishedPackageRepository.Collection.Any(pp => pp.Id == publishedPackage.Id && pp.IsLatestVersion)) { publishedPackage.IsLatestVersion = true; } else if (publishedPackage.IsLatestVersion) { _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(publishedPackage); } _publishedPackageRepository.Create(publishedPackage); _packageLogEntryCreator.Create(packageId, packageVersion, packageLogAction); }
public void PublishPackage(string key, string packageId, string packageVersion, PackageLogAction logActionForExistingPackage) { var packageLogAction = PackageLogAction.Create; _packageAuthenticator.EnsureKeyCanAccessPackage(key, packageId, packageVersion); Package package = _packageRepository.Collection .Include(p => p.Dependencies) .Include(p => p.Screenshots) .SingleOrDefault(p => p.Id == packageId && p.Version == packageVersion); if (package == null) { throw new PackageDoesNotExistException(packageId, packageVersion); } package.Published = _dateTime.UtcNow; _packageRepository.Update(package); var publishedPackage = _mapper.Map<Package, PublishedPackage>(package); var existingPublishedPackageCount = _publishedPackageRepository.Collection.Count(pp => pp.Id == packageId && pp.Version == packageVersion); if (existingPublishedPackageCount > 0) { _publishedScreenshotRespository.DeleteMany(ps => ps.PublishedPackageId == packageId && ps.PublishedPackageVersion == packageVersion); _publishedPackageRepository.DeleteMany(pp => pp.Id == packageId && pp.Version == packageVersion); packageLogAction = logActionForExistingPackage; } if (!_publishedPackageRepository.Collection.Any(pp => pp.Id == publishedPackage.Id && pp.IsLatestVersion)) { publishedPackage.IsLatestVersion = true; } else if (publishedPackage.IsLatestVersion) { _latestVersionUpdater.SetLatestVersionFlagsOfOtherVersionablesWithSameId(publishedPackage); } _publishedPackageRepository.Create(publishedPackage); _packageLogEntryCreator.Create(packageId, packageVersion, packageLogAction); }