public void RemoveKnownPackage(Hash packageId) { lock (syncLock) { if (!KnownPackages.ContainsKey(packageId)) { return; } KnownPackages = KnownPackages.Where(p => !p.Key.Equals(packageId)).ToDictionary(p => p.Key, p => p.Value); } KnownPackageChanged?.Invoke(this); }
public void ReplaceKnownPackages(PackageStatus[] newPackages) { bool changed = false; lock (syncLock) { if (newPackages.Length != KnownPackages.Count || !newPackages.All(k => KnownPackages.ContainsKey(k.Meta.PackageId))) { KnownPackages = newPackages.ToDictionary(p => p.Meta.PackageId); changed = true; } } if (changed) { KnownPackageChanged?.Invoke(this); } }