public async Task UpdateAdvertisingManifestsAsync(bool includePreviews, DirectoryPath?offlineCache = null) { // this updates all the manifests var manifests = _workloadResolver.GetInstalledManifests(); await Task.WhenAll(manifests.Select(manifest => UpdateAdvertisingManifestAsync(manifest, includePreviews, offlineCache))) .ConfigureAwait(false); WriteUpdatableWorkloadsFile(); }
public override int Execute() { if (!string.IsNullOrWhiteSpace(_downloadToCacheOption)) { try { DownloadToOfflineCacheAsync(new DirectoryPath(_downloadToCacheOption), _includePreviews).Wait(); } catch (Exception e) { throw new GracefulException(string.Format(LocalizableStrings.WorkloadCacheDownloadFailed, e.Message), e, isUserError: false); } } else if (_printDownloadLinkOnly) { var packageUrls = GetUpdatablePackageUrlsAsync(_includePreviews).GetAwaiter().GetResult(); Reporter.WriteLine("==allPackageLinksJsonOutputStart=="); Reporter.WriteLine(JsonSerializer.Serialize(packageUrls)); Reporter.WriteLine("==allPackageLinksJsonOutputEnd=="); } else if (_adManifestOnlyOption) { _workloadManifestUpdater.UpdateAdvertisingManifestsAsync(_includePreviews, string.IsNullOrWhiteSpace(_fromCacheOption) ? null : new DirectoryPath(_fromCacheOption)).Wait(); Reporter.WriteLine(); Reporter.WriteLine(LocalizableStrings.WorkloadUpdateAdManifestsSucceeded); } else if (_printRollbackDefinitionOnly) { var manifests = _workloadResolver.GetInstalledManifests().ToDictionary(m => m.Id, m => m.Version + "/" + m.ManifestFeatureBand, StringComparer.OrdinalIgnoreCase); Reporter.WriteLine("==workloadRollbackDefinitionJsonOutputStart=="); Reporter.WriteLine(JsonSerializer.Serialize(manifests, new JsonSerializerOptions() { WriteIndented = true })); Reporter.WriteLine("==workloadRollbackDefinitionJsonOutputEnd=="); } else { try { UpdateWorkloads(_includePreviews, string.IsNullOrWhiteSpace(_fromCacheOption) ? null : new DirectoryPath(_fromCacheOption)); } catch (Exception e) { // Don't show entire stack trace throw new GracefulException(string.Format(LocalizableStrings.WorkloadUpdateFailed, e.Message), e, isUserError: false); } } return(0); }
private IEnumerable <ManifestId> GetInstalledManifestIds() { return(_workloadResolver.GetInstalledManifests().Select(manifest => new ManifestId(manifest.Id))); }