private async void ReloadContainers()
        {
            if (_lastUpdated == DateTime.MinValue || DateTime.UtcNow - _lastUpdated > UpdateInterval)
            {
                try
                {
                    IReadOnlyCollection <DockerContainer> containers = await _presenter.GetAllContainersAsync();

                    containersList.Items.Clear();
                    foreach (DockerContainer container in containers)
                    {
                        containersList.Items.Add(
                            new ListViewItem(new string[]
                        {
                            container.ShortId,
                            container.Name,
                            container.Image,
                            container.Created.ToString(),
                            container.State,
                            container.Status
                        })
                        {
                            Tag       = container,
                            BackColor = GetContainerStateColor(container)
                        });
                    }

                    foreach (ColumnHeader header in containersList.Columns)
                    {
                        header.Width = -2;
                    }

                    _lastUpdated = DateTime.UtcNow;
                }
                catch (Exception ex)
                {
                    this.Handle(ex);
                }
            }

            UpdateLastUpdatedLabel();
            await Task.Delay(TimeSpan.FromSeconds(1));

            ReloadContainers();
        }
        private async void ReloadContainersAsync(string substring = null)
        {
            try
            {
                IReadOnlyCollection <DockerContainer> containers = await _presenter.GetAllContainersAsync();

                if (!string.IsNullOrEmpty(substring))
                {
                    containers = containers
                                 .Where(c => c.Name.IndexOf(substring, StringComparison.OrdinalIgnoreCase) != -1)
                                 .ToList();
                }

                containersList.Items.Clear();
                foreach (DockerContainer container in containers)
                {
                    containersList.Items.Add(
                        new ListViewItem(new string[]
                    {
                        container.ShortId,
                        container.Name,
                        container.Image,
                        container.Created.ToString(),
                        container.State,
                        container.Status
                    })
                    {
                        Tag       = container,
                        BackColor = GetContainerStateColor(container)
                    });
                }

                foreach (ColumnHeader header in containersList.Columns)
                {
                    header.Width = -2;
                }
            }
            catch (Exception ex)
            {
                this.Handle(ex);
            }
        }