diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-08-20 19:43:15 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-08-20 19:43:15 +0300 |
| commit | 51afc4f6a17383e91a72c2ce060e82604d43c3a8 (patch) | |
| tree | c0aa029d9864fc8f03b69716a42eda5efe65ccd5 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels | |
| parent | 2ea6653199844f5607d17a8912eb7a99e2471610 (diff) | |
| download | Tango-51afc4f6a17383e91a72c2ce060e82604d43c3a8.tar.gz Tango-51afc4f6a17383e91a72c2ce060e82604d43c3a8.zip | |
Working on new Machine Studio DB.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs | 2 | ||||
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs | 41 |
2 files changed, 32 insertions, 11 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs index a468dc2e7..eacc8a4cb 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs @@ -141,7 +141,7 @@ namespace Tango.MachineStudio.UI.ViewModels Status = "Loading, please wait..."; - ObservablesEntitiesAdapter.Instance.Initialize(); + ObservablesStaticCollections.Instance.Initialize(); _eventLogger.Log(EventTypes.ApplicationStarted, "Application Started!"); diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs index f2a4f1143..a37879a5e 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoginViewVM.cs @@ -51,6 +51,15 @@ namespace Tango.MachineStudio.UI.ViewModels set { _password = value; RaisePropertyChangedAuto(); } } + private bool _isLogging; + /// <summary> + /// Gets or sets a value indicating whether this instance is logging. + /// </summary> + public bool IsLogging + { + get { return _isLogging; } + set { _isLogging = value; RaisePropertyChangedAuto(); } + } private bool _rememberMe; /// <summary> @@ -81,7 +90,7 @@ namespace Tango.MachineStudio.UI.ViewModels _navigationManager = navigationManager; _authenticationProvider = authenticationProvider; _eventLogger = eventLogger; - LoginCommand = new RelayCommand(Login); + LoginCommand = new RelayCommand(Login,() => !IsLogging); cryptographer = new Rfc2898Cryptographer(); Email = _settings.LastLoginEmail; @@ -100,26 +109,38 @@ namespace Tango.MachineStudio.UI.ViewModels /// <summary> /// Logins the requested user. /// </summary> - private void Login() + private async void Login() { if (Validate()) { try { - _authenticationProvider.Login(Email, Password); - _navigationManager.NavigateTo(NavigationView.MainView); - _settings.LastLoginEmail = Email; - _settings.RememberMe = RememberMe; + IsLogging = true; + InvalidateRelayCommands(); - _settings.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null; - _settings.Save(); + await Task.Factory.StartNew(() => + { + _authenticationProvider.Login(Email, Password); + _navigationManager.NavigateTo(NavigationView.MainView); + _settings.LastLoginEmail = Email; + _settings.RememberMe = RememberMe; - _eventLogger.Log("User logged in"); + _settings.LastLoginPassword = RememberMe ? cryptographer.Encrypt(Password) : null; + _settings.Save(); + + _eventLogger.Log("User logged in"); + }); } - catch + catch (Exception) { + _notificationProvider.ShowError("Invalid credentials. Please try again."); } + finally + { + IsLogging = false; + InvalidateRelayCommands(); + } } } } |
