2 using SpeedportHybridControl.Implementations;
3 using SpeedportHybridControl.Data;
5 using System.Threading;
6 using SpeedportHybridControl.Model;
8 namespace SpeedportHybridControl.PageModel
10 class LoginPageModel : SuperViewModel
12 private string _ip = "speedport.ip";
13 private string _password;
14 private string _loginButtonText = "Login";
15 private bool _showPassword;
16 private bool _savePassword;
17 private Visibility _passwordBoxVisibility = Visibility.Visible;
18 private Visibility _passwordTextBoxVisibility = Visibility.Hidden;
19 private Visibility _loginFieldsVisibility = Visibility.Visible;
21 private DelegateCommand _showPasswordCommand;
22 private DelegateCommand _loginCommand;
27 set { SetProperty(ref _ip, value); }
30 public string password
32 get { return _password; }
34 // TODO: find a better way
35 if (value.IsNullOrEmpty().Equals(true))
37 if (SavePassword.Equals(true))
41 SetProperty(ref _password, value);
45 public string LoginButtonText
47 get { return _loginButtonText; }
48 set { SetProperty(ref _loginButtonText, value); }
51 public bool ShowPassword
53 get { return _showPassword; }
54 set { SetProperty(ref _showPassword, value); }
57 public bool SavePassword
59 get { return _savePassword; }
60 set { SetProperty(ref _savePassword, value); }
63 public Visibility PasswordBoxVisibility
65 get { return _passwordBoxVisibility; }
66 set { SetProperty(ref _passwordBoxVisibility, value); }
69 public Visibility PasswordTextBoxVisibility
71 get { return _passwordTextBoxVisibility; }
72 set { SetProperty(ref _passwordTextBoxVisibility, value); }
75 public Visibility LoginFieldsVisibility
77 get { return _loginFieldsVisibility; }
78 set { SetProperty(ref _loginFieldsVisibility, value); }
81 public DelegateCommand ShowPasswordCommand
83 get { return _showPasswordCommand; }
84 set { SetProperty(ref _showPasswordCommand, value); }
87 public DelegateCommand LoginCommand
89 get { return _loginCommand; }
90 set { SetProperty(ref _loginCommand, value); }
93 private void OnShowPasswordCommandExecute()
95 if (ShowPassword.Equals(true))
97 PasswordBoxVisibility = Visibility.Hidden;
98 PasswordTextBoxVisibility = Visibility.Visible;
101 PasswordBoxVisibility = Visibility.Visible;
102 PasswordTextBoxVisibility = Visibility.Hidden;
106 private void OnLoginCommandExecute()
108 MainWindowModel mwm = Application.Current.FindResource("MainWindowModel") as MainWindowModel;
110 if (LoginButtonText.Equals("Login"))
112 if (SpeedportHybridAPI.getInstance().ip.Equals(ip).Equals(false))
114 SpeedportHybridAPI.getInstance().ip = ip;
117 bool login = SpeedportHybridAPI.getInstance().login(password);
118 if (login.Equals(true))
120 if (SavePassword.Equals(true))
122 SettingsModel SettingsModel = new SettingsModel
125 ip = SpeedportHybridAPI.getInstance().ip
128 Settings.save(SettingsModel);
131 SettingsModel SettingsModel = new SettingsModel
133 password = string.Empty,
134 ip = SpeedportHybridAPI.getInstance().ip
137 Settings.save(SettingsModel);
140 LoginFieldsVisibility = Visibility.Hidden;
141 mwm.ButtonOverviewPageIsActive = true;
142 mwm.ButtonDSLPageIsActive = true;
143 mwm.ButtonLteInfoPageIsActive = true;
144 mwm.ButtonSyslogPageIsActive = true;
145 mwm.ButtonTR181PageIsActive = true;
146 mwm.ButtonPhonePageIsActive = true;
147 mwm.ButtonLanPageIsActive = true;
148 mwm.ButtonInterfacePageIsActive = true;
149 mwm.ButtonControlsPageIsActive = true;
151 LoginButtonText = "Logout";
152 mwm.LoginButtonContent = "Logout";
155 new Thread(() => { MessageBox.Show("Login fehlgeschlagen. Sie haben ein falsches Gerätepasswort eingegeben. Bitte versuchen Sie es erneut und achten Sie auf die korrekte Schreibweise.", "Confirmation", MessageBoxButton.OK, MessageBoxImage.Error); }).Start();
156 LogManager.WriteToLog("Login Failed, wrong password");
160 if (SpeedportHybridAPI.getInstance().logout().Equals(true))
167 public void LogoutAction()
169 LteInfoModel lim = Application.Current.FindResource("LteInfoModel") as LteInfoModel;
173 DslPageModel dpm = Application.Current.FindResource("DslPageModel") as DslPageModel;
176 MainWindowModel mwm = Application.Current.FindResource("MainWindowModel") as MainWindowModel;
177 LoginFieldsVisibility = Visibility.Visible;
178 mwm.ButtonOverviewPageIsActive = false;
179 mwm.ButtonDSLPageIsActive = false;
180 mwm.ButtonLteInfoPageIsActive = false;
181 mwm.ButtonSyslogPageIsActive = false;
182 mwm.ButtonTR181PageIsActive = false;
183 mwm.ButtonPhonePageIsActive = false;
184 mwm.ButtonLanPageIsActive = false;
185 mwm.ButtonInterfacePageIsActive = false;
186 mwm.ButtonControlsPageIsActive = false;
188 LoginButtonText = "Login";
189 mwm.LoginButtonContent = "Login";
192 public LoginPageModel()
194 SettingsModel settings = Settings.load();
195 if (settings.ip.IsNullOrEmpty().Equals(false))
200 SpeedportHybridAPI.getInstance().ip = ip;
202 if (settings.password.IsNullOrEmpty().Equals(false))
205 password = settings.password;
208 ShowPasswordCommand = new DelegateCommand(new Action(OnShowPasswordCommandExecute));
209 LoginCommand = new DelegateCommand(new Action(OnLoginCommandExecute));