public LoginViewModel(ISession session, ILocalSettingsRepository localSettingsRepository) { this.session = session; this.localSettingsRepository = localSettingsRepository; Login = new ParameterrizedCommand <PasswordBox>(DoLogin, IsLoginPossible); Connect = new Command(DoConnect, IsConnectPossible); DebugConnect = new Command(DoDebugConnect, IsConnectPossible); Disconnect = new Command(DoDisconnect, IsDisconnectPossible); AutoConnectOnNextStart = localSettingsRepository.IsAutoConnectionEnabled; AvailableUsers = new ObservableCollection <ClientUserData>(); ClientIpAddresses = IpAddressCatcher.GetAllAvailableLocalIpAddresses() .Select(address => address.Identifier.ToString()) .ToObservableCollection(); ClientAddress = ClientIpAddresses.First(); session.ApplicationStateChanged += OnApplicationStateChanged; OnApplicationStateChanged(session.CurrentApplicationState); AreConnectionSettingsVisible = !AutoConnectOnNextStart; if (AutoConnectOnNextStart) { var clientIpAddress = localSettingsRepository.AutoConnectionClientAddress.ToString(); if (ClientIpAddresses.Contains(clientIpAddress)) { ClientAddress = clientIpAddress; ServerAddress = localSettingsRepository.AutoConnectionServerAddress.ToString(); Connect.Execute(null); } } }
public IReadOnlyList <Address> GetAllAvailableAddresses() { return(IpAddressCatcher.GetAllAvailableLocalIpAddresses()); }