public bool Connect() { _loggerProvider.Write("Connecting..."); ConnectionStatusChanged?.Invoke(ConnectionStatus.Connecting); _connectInfo = PrepareConnectionInfo(); _client = new SshClient(_connectInfo); _client.ErrorOccurred += OnErrorHandler; try { _client.Connect(); foreach (var p in _ports) { p.Init(); _client.AddForwardedPort(p.NativePort); p.Start(); } } catch (Exception e) { _loggerProvider.Write("Connection error: " + e); return(false); } _loggerProvider.Write("Connection established."); ConnectionStatusChanged?.Invoke(ConnectionStatus.Established); return(_client.IsConnected); }
public MainWindowViewModel(ISecureShellTunnelProvider secureShellTunnelProvider, ILoggerProvider loggerProvider, Settings settings) { _settings = settings; _loggerProvider = loggerProvider; _secureShellTunnelProvider = secureShellTunnelProvider; _loggerProvider.Write("App started."); _secureShellTunnelProvider.SubscribeToConnectionStatus(ConnectionStatusChanged); SelectedProxy = ProxyTypes.None; SelectedTunnel = TunnelTypes.Local; //Try open config _settings.Load(); ForwardedPorts = _settings.Ports.ToBindableCollection(); EnableProxy = _settings.ProxySettings.UseProxy; ConnectionStatus = Helpers.ConnectionStatus.Disconnected.ToString(); _connectionStatusType = Helpers.ConnectionStatus.Disconnected; }