public ImageViewModel(DockerService docker, ImagesListResponse image) { _docker = docker; Name = image.RepoTags?.ElementAt(0) ?? "---"; ID = image.ID; ShortID = ID.Substring(7, 12); IsRoot = image.ParentID == string.Empty; Size = image.Size; DisplaySize = $"{((float)image.Size) / 1024 / 1024:F1}MB"; Tags = image.RepoTags !; _raw = image; ConfirmDeleteImage = new Interaction <MessageBoxStandardParams, ButtonResult>(); NewContainer = new NewContainerViewModel(docker, this); Task.Run(async() => { var d = await docker.Client.Images.InspectImageAsync(ID); var exposedPorts = d.Config.ExposedPorts; if (exposedPorts == null) { return; } var x = exposedPorts.Keys.ToArray(); ExposedPorts = x; }); }
internal static IEnumerable <DockerImage> CreateMany(ImagesListResponse wr) { foreach (string tag in wr.RepoTags) { var image = new DockerImage(wr.ID, wr.ParentID, tag, wr.Size); yield return(image); } }
/// <summary> /// Uses either the list of IDs, or gets the list of IDs from the list of Images. /// </summary> /// <param name="images">The list of image objects to get values from.</param> /// <param name="ids">The list of ids.</param> /// <returns>List of IDs to process.</returns> internal static string[] GetImageIds(ImagesListResponse[] images, string[] ids) { if (ids != null && ids.Length != 0) { return ids; } return images.Select(i => i.ID).ToArray(); }
public static string GetName(this ImagesListResponse container) { if (container is null) { throw new ArgumentNullException(nameof(container)); } return(container.RepoTags?.Count > 0 ? container.RepoTags[0] : container.ID); }
public async Task <ImagesListResponse> PhotosList() { var photos = await _context .Photo .Select(m => m.Path) .ToListAsync(); var response = new ImagesListResponse { BaseUrl = $"{_storageConfig.Value.Url}/{_storageConfig.Value.PublicContainerName}", ImagesPaths = photos }; return(response); }
public static ImagesListResponse FindParent(this ImagesListResponse image, IList <ImagesListResponse> allImages) { try { var parentImage = allImages.FirstOrDefault(i => i.ID == image.ParentID && (i.RepoTags.Count > 1 || i.RepoTags[0] != Env.NoneTag)); if (parentImage != null) { return(parentImage); } } catch (Exception) { return(null); } var intermediateImage = allImages.FirstOrDefault(i => i.ID == image.ParentID && i.RepoTags.Count == 1 && i.RepoTags[0] == Env.NoneTag); if (intermediateImage == null) { return(null); } return(intermediateImage.FindParent(allImages)); }