private static void UpdateLatestDictionary( ConcurrentDictionary <string, ServerPackage> dictionary, ServerPackage package) { dictionary.AddOrUpdate( package.Id, package, (oldId, oldEntry) => oldEntry.Version < package.Version ? package : oldEntry); }
private ServerPackage CreateServerPackage( IPackage package, bool enableDelisting) { var packageDerivedData = GetPackageDerivedData(package, enableDelisting); var serverPackage = new ServerPackage( package, packageDerivedData); return(serverPackage); }
public void Add(ServerPackage entity) { _syncLock.EnterWriteLock(); try { _packages.Remove(entity); _packages.Add(entity); UpdateLatestVersions(_packages.Where(p => IsMatch(p, entity.Id))); _isDirty = true; } finally { _syncLock.ExitWriteLock(); } }
private static bool IsMatch(ServerPackage package, string id, SemanticVersion version) { return(IsMatch(package, id) && package.Version == version); }
private static bool IsMatch(ServerPackage package, string id) { return(StringComparer.OrdinalIgnoreCase.Equals(package.Id, id)); }