public static SSHConnection GetSSHConnection(string name) { ConnectionInfoStore store = new ConnectionInfoStore(); ConnectionInfo connectionInfo = null; StoredConnectionInfo storedConnectionInfo = store.Connections.FirstOrDefault(connection => { return(name.Equals(SSHPortSupplier.GetFormattedSSHConnectionName((ConnectionInfo)connection), StringComparison.OrdinalIgnoreCase)); }); if (storedConnectionInfo != null) { connectionInfo = (ConnectionInfo)storedConnectionInfo; } if (connectionInfo == null) { IVsConnectionManager connectionManager = (IVsConnectionManager)ServiceProvider.GlobalProvider.GetService(typeof(IVsConnectionManager)); IConnectionManagerResult result; if (string.IsNullOrWhiteSpace(name)) { result = connectionManager.ShowDialog(); } else { string userName; string hostName; int atSignIndex = name.IndexOf('@'); if (atSignIndex > 0) { userName = name.Substring(0, atSignIndex); int hostNameStartPos = atSignIndex + 1; hostName = hostNameStartPos < name.Length ? name.Substring(hostNameStartPos) : StringResources.HostName_PlaceHolder; } else { userName = string.Format(CultureInfo.CurrentCulture, StringResources.UserName_PlaceHolder); hostName = name; } result = connectionManager.ShowDialog(new PasswordConnectionInfo(hostName, userName, new System.Security.SecureString())); } if ((result.DialogResult & ConnectionManagerDialogResult.Succeeded) == ConnectionManagerDialogResult.Succeeded) { // Retrieve the newly added connection store.Load(); connectionInfo = store.Connections.First(info => info.Id == result.StoredConnectionId); } } return(SSHHelper.CreateSSHConnectionFromConnectionInfo(connectionInfo)); }
protected IConnection GetConnection() { if (this.sshConnection == null) { if (this.connectionInfo != null) { this.sshConnection = SSHHelper.CreateSSHConnectionFromConnectionInfo(connectionInfo); } } return(this.sshConnection); }
protected IConnection GetConnection() { ThreadHelper.ThrowIfNotOnUIThread(); if (this.sshConnection == null) { if (this.connectionInfo != null) { this.sshConnection = SSHHelper.CreateSSHConnectionFromConnectionInfo(connectionInfo); } } return(this.sshConnection); }
public static SSHConnection GetSSHConnection(string name) { ThreadHelper.ThrowIfNotOnUIThread(); ConnectionInfoStore store = new ConnectionInfoStore(); ConnectionInfo connectionInfo = null; StoredConnectionInfo storedConnectionInfo = store.Connections.FirstOrDefault(connection => { return(string.Equals(name, SSHPortSupplier.GetFormattedSSHConnectionName((ConnectionInfo)connection), StringComparison.OrdinalIgnoreCase)); }); if (storedConnectionInfo != null) { connectionInfo = (ConnectionInfo)storedConnectionInfo; } if (connectionInfo == null) { IVsConnectionManager connectionManager = (IVsConnectionManager)ServiceProvider.GlobalProvider.GetService(typeof(IVsConnectionManager)); if (connectionManager != null) { IConnectionManagerResult result; if (string.IsNullOrWhiteSpace(name)) { result = connectionManager.ShowDialog(); } else { ParseSSHConnectionString(name, out string userName, out string hostName, out int port); result = connectionManager.ShowDialog(new PasswordConnectionInfo(hostName, port, Timeout.InfiniteTimeSpan, userName, new System.Security.SecureString())); } if ((result.DialogResult & ConnectionManagerDialogResult.Succeeded) == ConnectionManagerDialogResult.Succeeded) { // Retrieve the newly added connection store.Load(); connectionInfo = store.Connections.First(info => info.Id == result.StoredConnectionId); } } else { throw new InvalidOperationException("Why is IVsConnectionManager null?"); } } return(SSHHelper.CreateSSHConnectionFromConnectionInfo(connectionInfo)); }