public static ImageInfo Create( Image model, string fullRepoModelName, string repoName, ManifestFilter manifestFilter, VariableHelper variableHelper) { ImageInfo imageInfo = new ImageInfo(); imageInfo.Model = model; if (model.SharedTags == null) { imageInfo.SharedTags = Enumerable.Empty <TagInfo>(); } else { imageInfo.SharedTags = model.SharedTags .Select(kvp => TagInfo.Create(kvp.Key, kvp.Value, repoName, variableHelper)) .ToArray(); } imageInfo.AllPlatforms = manifestFilter.GetPlatforms(model) .Select(platform => PlatformInfo.Create(platform, fullRepoModelName, repoName, variableHelper)) .ToArray(); IEnumerable <Platform> filteredPlatformModels = manifestFilter.GetPlatforms(model); imageInfo.FilteredPlatforms = imageInfo.AllPlatforms .Where(platform => filteredPlatformModels.Contains(platform.Model)); return(imageInfo); }
public static ImageInfo Create(Image model, Manifest manifest, string repoName, ManifestFilter manifestFilter) { ImageInfo imageInfo = new ImageInfo(); imageInfo.Model = model; if (model.SharedTags == null) { imageInfo.SharedTags = Enumerable.Empty <TagInfo>(); } else { imageInfo.SharedTags = model.SharedTags .Select(kvp => TagInfo.Create(kvp.Key, kvp.Value, manifest, repoName)) .ToArray(); } imageInfo.Platforms = manifestFilter.GetPlatforms(model) .Select(platform => PlatformInfo.Create(platform, manifest, repoName)) .ToArray(); Platform activePlatformModel = manifestFilter.GetActivePlatform(model); if (activePlatformModel != null) { imageInfo.ActivePlatform = imageInfo.Platforms .First(platform => platform.Model == activePlatformModel); imageInfo.ActiveFullyQualifiedTags = imageInfo.SharedTags .Select(tag => tag.FullyQualifiedName) .Concat(imageInfo.ActivePlatform.Tags.Select(tag => tag.FullyQualifiedName)); } return(imageInfo); }