diff --git a/View/Dialogs/DatabaseSelectorDialogView.xaml.cs b/View/Dialogs/DatabaseSelectorDialogView.xaml.cs index ed90a62..73c8894 100644 --- a/View/Dialogs/DatabaseSelectorDialogView.xaml.cs +++ b/View/Dialogs/DatabaseSelectorDialogView.xaml.cs @@ -1,17 +1,7 @@ using System; -using System.Collections.Generic; using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; using DebtMgr.Extensions; namespace DebtMgr.View.Dialogs @@ -34,6 +24,14 @@ namespace DebtMgr.View.Dialogs private void Window_OnKeyUp(object sender, KeyEventArgs e) { if (e.Key.Equals(Key.Escape)) + Close(); + } + + protected override void OnClosing(CancelEventArgs e) + { + base.OnClosing(e); + + if (!App.Locator.DatabaseSelectorDialogView.ProgramRequestedClose) Application.Current.Shutdown(); } } diff --git a/View/MainView.xaml b/View/MainView.xaml index 66005b2..f7a84e3 100644 --- a/View/MainView.xaml +++ b/View/MainView.xaml @@ -22,11 +22,8 @@ - - - - - + + diff --git a/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs b/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs index c383ca1..c3f4138 100644 --- a/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs +++ b/ViewModel/Dialogs/DatabaseSelectorDialogViewModel.cs @@ -16,6 +16,7 @@ namespace DebtMgr.ViewModel.Dialogs public class DatabaseSelectorDialogViewModel : ViewModelBase { public event EventHandler RequestClose; + public bool ProgramRequestedClose = false; #region SelectDatabasePathText (string) Property @@ -71,6 +72,7 @@ namespace DebtMgr.ViewModel.Dialogs Properties.Settings.Default["Database"] = openFileDialog.FileName; Properties.Settings.Default.Save(); + ProgramRequestedClose = true; RequestClose?.Invoke(null, null); } catch (Exception) @@ -113,6 +115,7 @@ namespace DebtMgr.ViewModel.Dialogs Properties.Settings.Default["Database"] = saveFileDialog.FileName; Properties.Settings.Default.Save(); + ProgramRequestedClose = true; RequestClose?.Invoke(null, null); } } diff --git a/ViewModel/MainViewModel.cs b/ViewModel/MainViewModel.cs index abf8a3e..72297c8 100644 --- a/ViewModel/MainViewModel.cs +++ b/ViewModel/MainViewModel.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Windows; using System; using System.Configuration; +using System.Threading; using SQLite.Net; using SQLite.Net.Platform.Generic; @@ -390,6 +391,32 @@ namespace DebtMgr.ViewModel #endregion + #region SwitchDatabaseMenuCommand Command + + /// + /// Private member backing variable for + /// + private RelayCommand _PrivateCommandName = null; + + /// + /// Comment + /// + public RelayCommand SwitchDatabaseMenuCommand => _PrivateCommandName ?? (_PrivateCommandName = new RelayCommand(SwitchDatabaseMenuCommand_Execute)); + + private void SwitchDatabaseMenuCommand_Execute() + { + Properties.Settings.Default["Database"] = string.Empty; + Properties.Settings.Default.Save(); + + Thread.Sleep(100); + + + System.Diagnostics.Process.Start(Application.ResourceAssembly.Location); + Application.Current.Shutdown(); + } + + #endregion + //////////////////////////////////////////////////////////////////////////////////////////////////// /// Initializes a new instance of the MainViewModel class. ///