Пример #1
0
        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);
                }
            }
        }
Пример #2
0
 public IReadOnlyList <Address> GetAllAvailableAddresses()
 {
     return(IpAddressCatcher.GetAllAvailableLocalIpAddresses());
 }