private void DoLogin(string username, string password) { var workMessage = "Logging in..."; SetWork(workMessage, Brushes.Black, false); passwordBoxPassword.Clear(); DateTime timeout = DateTime.Now + App.Settings.LogInTimeout; bool isSuccess = false; SocketSession.BeginAndCallback(delegate { isSuccess = SocketSession.Login(username, password, timeout); }, delegate { if (isSuccess) { IsLoggedIn = true; App.LoggedIn(username); var userData = new UserDataManager(SocketSession); var homeWindow = new HomeWindow(); homeWindow.Init(); Hide(); homeWindow.Show(); App.Settings.Username = username; if (checkBoxRememberPassword.IsChecked == true) App.Settings.Password = password.Encrypt(); else App.Settings.Password = ""; App.Settings.Save(); Close(); foreach (var action in _loginSuccessActions) { try { action(); } catch (Exception e) { Console.WriteLine("Login success action threw Exception: " + e.Message); Console.WriteLine(e.StackTrace); } } } else { var message = "Invalid username or password"; if (DateTime.Now >= timeout) message = "Try again later. No response within timeout period."; SetWork(message, Brushes.Red, true); passwordBoxPassword.Focus(); } _loginSuccessActions.Clear(); }); }
public HomeWindow() { InitializeComponent(); Home = this; WindowTreeManager = new WindowTreeManager(this, null, false); }