WorkloadPackGroupJson ConvertGroupToJson(WorkloadPackGroup group) { var groupJson = new WorkloadPackGroupJson(); groupJson.GroupPackageId = group.Workload.Id + ".Packs"; groupJson.GroupPackageVersion = group.WorkloadManifestVersion; foreach (var pack in group.Packs) { groupJson.Packs.Add(new WorkloadPackJson() { PackId = pack.Id, PackVersion = pack.Version, }); } return(groupJson); }
List <WorkloadPackGroup> GetPackGroups() { List <WorkloadPackGroup> groups = new(); var manifestProvider = CreateManifestProvider(); var manifests = GetManifests(manifestProvider); var workloadResolver = WorkloadResolver.CreateForTests(manifestProvider, TestContext.Current.ToolsetUnderTest.DotNetRoot); foreach (var manifest in manifests) { foreach (var workload in manifest.Workloads.Values.OfType <WorkloadDefinition>()) { if (workload.Packs == null || !workload.Packs.Any()) { continue; } List <WorkloadResolver.PackInfo> packInfos = new List <WorkloadResolver.PackInfo>(); List <WorkloadPackId> unavailablePacks = new List <WorkloadPackId>(); foreach (var packId in workload.Packs) { var packInfo = workloadResolver.TryGetPackInfo(packId); if (packInfo == null) { unavailablePacks.Add(packId); } else { packInfos.Add(packInfo); } } WorkloadPackGroup group = new WorkloadPackGroup(workload, manifest.Version, packInfos, unavailablePacks); groups.Add(group); } } return(groups); }