private void RefreshAvailableUpdatesCount() { NuGetUIThreadHelper.JoinableTaskFactory.RunAsync(async() => { await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); _topPanel._labelUpgradeAvailable.Count = 0; var loadContext = new PackageLoadContext(ActiveSources, Model.IsSolution, Model.Context); var packageFeed = await CreatePackageFeedAsync(loadContext, ItemFilter.UpdatesAvailable, _uiLogger); var loader = new PackageItemLoader( loadContext, packageFeed, includePrerelease: IncludePrerelease); // cancel previous refresh update count task, if any // and start a new one. var refreshCts = new CancellationTokenSource(); Interlocked.Exchange(ref _refreshCts, refreshCts)?.Cancel(); Model.CachedUpdates = new PackageSearchMetadataCache { Packages = await loader.GetAllPackagesAsync(refreshCts.Token), IncludePrerelease = IncludePrerelease }; _topPanel._labelUpgradeAvailable.Count = Model.CachedUpdates.Packages.Count; }); }
private void RefreshAvailableUpdatesCount() { NuGetUIThreadHelper.JoinableTaskFactory.RunAsync(async() => { await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); _topPanel._labelUpgradeAvailable.Count = 0; var loadContext = new PackageLoadContext(ActiveSources, Model.IsSolution, Model.Context); var packageFeed = await CreatePackageFeedAsync(loadContext, ItemFilter.UpdatesAvailable, _uiLogger); var loader = new PackageItemLoader( loadContext, packageFeed, includePrerelease: IncludePrerelease); Model.CachedUpdates = new PackageSearchMetadataCache { Packages = await loader.GetAllPackagesAsync(CancellationToken.None), IncludePrerelease = IncludePrerelease }; _topPanel._labelUpgradeAvailable.Count = Model.CachedUpdates.Packages.Count; }); }