private void RefreshContainersListInternal() { try { IContainerViewModel selectedContainer = SelectedContainerInstance; SelectedContainerInstance = null; IEnumerable <DockerContainerInstance> containers; if (SelectedConnection is LocalConnectionViewModel) { containers = DockerHelper.GetLocalDockerContainers(Hostname); } else { ContainersFoundText = UIResources.SSHConnectingStatusText; var connection = SelectedConnection.Connection; if (connection == null) { UpdateStatusMessage(UIResources.SSHConnectionFailedStatusText, isError: true); return; } containers = DockerHelper.GetRemoteDockerContainers(connection, Hostname); } ContainerInstances = new ObservableCollection <IContainerViewModel>(containers.Select(item => new DockerContainerViewModel(item)).ToList()); OnPropertyChanged(nameof(ContainerInstances)); if (ContainerInstances.Count() > 0) { if (selectedContainer != null) { var found = ContainerInstances.FirstOrDefault(c => selectedContainer.Equals(c)); if (found != null) { SelectedContainerInstance = found; return; } } SelectedContainerInstance = ContainerInstances[0]; } } catch (Exception ex) { UpdateStatusMessage(UIResources.ErrorStatusTextFormat.FormatCurrentCultureWithArgs(ex.Message), isError: true); return; } finally { if (ContainerInstances.Count() > 0) { ContainersFoundText = UIResources.ContainersFoundStatusText.FormatCurrentCultureWithArgs(ContainerInstances.Count()); } else { ContainersFoundText = UIResources.NoContainersFound; } IsRefreshEnabled = true; } }
public ShellViewModel( EndpointsViewModel endpoints, MessageListViewModel messageList, MessageViewerViewModel messageViewer, HeadersViewModel headers) { Version = GetType().Assembly .GetCustomAttributes(false) .OfType<AssemblyInformationalVersionAttribute>() .First() .InformationalVersion; RefreshCommand = ServiceControl.Instance.IsValid.ToCommand(p => DoRefresh()); Anchorables = new IContainerViewModel[] { endpoints, messageList }; Documents = new IContainerViewModel[] { messageViewer, headers }; Task.Run(async () => { using (var mgr = new UpdateManager(@"https://s3.amazonaws.com/serviceinsight/")) { await mgr.UpdateApp(); } }); }
public bool Equals(IContainerViewModel instance) { if (instance is object) { return(EqualsInternal(instance)); } return(false); }
public ContainerView(IContainerViewModel viewModel, IKernel kernel) { this.kernel = kernel; DataContext = vm = viewModel; InitializeComponent(); UserControl uc = null; ResumeCreatorTab.Content = kernel.Get <ResumeCreatorView>(); uc = ResumeCreatorTab.Content as UserControl; uc.Style = (Style)FindResource("TabContent"); KeywordToolTab.Content = kernel.Get <KeywordToolView>(); uc = KeywordToolTab.Content as UserControl; uc.Style = (Style)FindResource("TabContent"); }
private void RefreshContainersListInternal() { int totalContainers = 0; try { IContainerViewModel selectedContainer = SelectedContainerInstance; SelectedContainerInstance = null; IEnumerable <DockerContainerInstance> containers; if (SelectedConnection is LocalConnectionViewModel) { containers = DockerHelper.GetLocalDockerContainers(Hostname, out totalContainers); } else { ContainersFoundText = UIResources.SSHConnectingStatusText; var connection = SelectedConnection.Connection; if (connection == null) { UpdateStatusMessage(UIResources.SSHConnectionFailedStatusText, isError: true); return; } containers = DockerHelper.GetRemoteDockerContainers(connection, Hostname, out totalContainers); } if (containers.Count() > 0) { string serverOS; if (DockerHelper.TryGetServerOS(Hostname, out serverOS)) { bool lcow; bool getLCOW = DockerHelper.TryGetLCOW(Hostname, out lcow); TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; serverOS = textInfo.ToTitleCase(serverOS); /* Note: LCOW is the abbreviation for Linux Containers on Windows * * In LCOW, both Linux and Windows containers can run simultaneously in a Docker (Windows) Engine. * Thus, the container platform must be queried directly. * Otherwise, the container platform must match that of the server engine. */ if (lcow && serverOS.Contains("Windows")) { foreach (DockerContainerInstance container in containers) { string containerPlatform = string.Empty; if (DockerHelper.TryGetContainerPlatform(Hostname, container.Name, out containerPlatform)) { container.Platform = textInfo.ToTitleCase(containerPlatform); } else { container.Platform = unknownOS; } } } else { foreach (DockerContainerInstance container in containers) { container.Platform = serverOS; } } } else { foreach (DockerContainerInstance container in containers) { container.Platform = unknownOS; } } } ContainerInstances = new ObservableCollection <IContainerViewModel>(containers.Select(item => new DockerContainerViewModel(item)).ToList()); OnPropertyChanged(nameof(ContainerInstances)); if (ContainerInstances.Count() > 0) { if (selectedContainer != null) { var found = ContainerInstances.FirstOrDefault(c => selectedContainer.Equals(c)); if (found != null) { SelectedContainerInstance = found; return; } } SelectedContainerInstance = ContainerInstances[0]; } } catch (Exception ex) { UpdateStatusMessage(UIResources.ErrorStatusTextFormat.FormatCurrentCultureWithArgs(ex.Message), isError: true); return; } finally { if (ContainerInstances.Count() > 0) { if (ContainerInstances.Count() < totalContainers) { UpdateStatusMessage(UIResources.ContainersNotAllParsedStatusText.FormatCurrentCultureWithArgs(totalContainers - ContainerInstances.Count()), isError: false); ContainersFoundText = UIResources.ContainersNotAllParsedText.FormatCurrentCultureWithArgs(ContainerInstances.Count(), totalContainers); } else { ContainersFoundText = UIResources.ContainersFoundStatusText.FormatCurrentCultureWithArgs(ContainerInstances.Count()); } } else { ContainersFoundText = UIResources.NoContainersFound; } IsRefreshEnabled = true; } }
protected abstract bool EqualsInternal(IContainerViewModel instance);