private void LoginStart(object sender, StartupEventArgs e) { //Disable shutdown when the dialog closes Current.ShutdownMode = ShutdownMode.OnExplicitShutdown; // Fetch the user account SpikeAccountManager.AccountWindow window = new SpikeAccountManager.AccountWindow(); bool?result = window.ShowDialog(); if (result.HasValue && result.Value) { this.ApplicationStart(sender, e); } else if (result.HasValue && !result.Value) { Current.Shutdown(-1); } else { MessageBox.Show("Unable to establish a valid login.", "Error", MessageBoxButton.OK); Current.Shutdown(-1); } }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // Fetch the user account SpikeAccountManager.AccountWindow window = new SpikeAccountManager.AccountWindow(); try { bool?result = window.ShowDialog(); if (result.HasValue && result.Value) { // Happy result, do not terminate the application VM.User = window.LoginResponse.Resource; } else { Application.Current.Shutdown(-1); } } catch (SpikeException err) { MessageBox.Show(err.Message + "\r\nAborting application"); Application.Current.Shutdown(-1); } catch (AggregateException ae) { MessageBox.Show("Fatal error. Aborting application"); Application.Current.Shutdown(-1); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\nAborting application"); Application.Current.Shutdown(-1); } }