private void CleanImplementations(IEnumerable <ImplementationSelection> implementations) { var digestsToKeep = implementations.Select(x => x.ManifestDigest); var digestsToRemove = ImplementationStore.ListAll().Except(digestsToKeep, ManifestDigestPartialEqualityComparer.Instance); Handler.RunTask(ForEachTask.Create( name: Resources.RemovingOutdated, target: digestsToRemove.ToList(), work: digest => ImplementationStore.Remove(digest, Handler))); }
public void ListAll() { Directory.CreateDirectory(Path.Combine(_tempDir, "sha1=test1")); Directory.CreateDirectory(Path.Combine(_tempDir, "sha1new=test2")); Directory.CreateDirectory(Path.Combine(_tempDir, "sha256=test3")); Directory.CreateDirectory(Path.Combine(_tempDir, "sha256new_test4")); Directory.CreateDirectory(Path.Combine(_tempDir, "temp=stuff")); _store.ListAll().Should().BeEquivalentTo(new ManifestDigest[] { new(Sha1: "test1"), new(Sha1New: "test2"), new(Sha256: "test3"), new(Sha256New: "test4") });
private void CleanImplementations(IEnumerable <ImplementationSelection> implementations) { var digestsToKeep = implementations.Select(x => x.ManifestDigest); var digestsToRemove = ImplementationStore.ListAll().Except(digestsToKeep, ManifestDigestPartialEqualityComparer.Instance); Handler.RunTask(ForEachTask.Create( name: Resources.RemovingOutdated, target: digestsToRemove.ToList(), work: digest => { try { ImplementationStore.Remove(digest, Handler); } catch (NotAdminException ex) when(ZeroInstallInstance.IsLibraryMode) { Log.Info($"Unable to remove {digest}", ex); } } )); }
private void Clean(IEnumerable <ManifestDigest> digestsToKeep) { var toDelete = ImplementationStore.ListAll().Except(digestsToKeep, ManifestDigestPartialEqualityComparer.Instance).ToList(); Handler.RunTask(ForEachTask.Create(Resources.RemovingOutdated, toDelete, x => ImplementationStore.Remove(x, Handler))); }