private void RemoveAvailableLibrariesFromPaths(IEnumerable <string> libraryPaths)
 {
     foreach (var libraryPath in libraryPaths)
     {
         var library = CreateLibraryFromPath(libraryPath);
         while (TryGetLibraryWithNameAndVersion(library, out var otherLibrary))
         {
             AvailableLibraries.Remove(otherLibrary);
             AvailableLibraryItems.Remove(AvailableLibraryItems.FirstOrDefault(x => x.Library == otherLibrary));
         }
     }
 }
        private void AddLibraryToAvailableIfNewest(NodeLibrary library)
        {
            if (TryGetLibraryWithNameAndVersion(library, out var otherLibrary))
            {
                if (!library.IsNewerVersionThan(otherLibrary))
                {
                    return;
                }

                AvailableLibraries.Remove(otherLibrary);
                AvailableLibraryItems.Remove(AvailableLibraryItems.FirstOrDefault(x => x.Library == otherLibrary));
                AvailableLibraries.Add(library);
                AvailableLibraryItems.Add(new LibraryListItem(library, library.Name));
            }
            else
            {
                AvailableLibraries.Add(library);
                AvailableLibraryItems.Add(new LibraryListItem(library, library.Name));
            }
        }