using System; using System.Windows; using DebtMgr.Model; using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; namespace DebtMgr.ViewModel.Dialogs { public class NewPersonDialogViewModel : ViewModelBase { public event EventHandler RequestClose; #region FirstNameTextBoxText (string) Property /// /// Privater Teil von /// private string _firstNameTextBoxText; /// /// Comment /// public string FirstNameTextBoxText { get { return _firstNameTextBoxText; } set { _firstNameTextBoxText = value; RaisePropertyChanged(() => FirstNameTextBoxText); CreatePersonButtonClickCommand.RaiseCanExecuteChanged(); } } #endregion #region LastNameTextBoxText (string) Property /// /// Privater Teil von /// private string _lastNameTextBoxText; /// /// Comment /// public string LastNameTextBoxText { get { return _lastNameTextBoxText; } set { _lastNameTextBoxText = value; RaisePropertyChanged(() => LastNameTextBoxText); CreatePersonButtonClickCommand.RaiseCanExecuteChanged(); } } #endregion #region CreatePersonButtonClickCommand Command /// /// Private member backing variable for /// private RelayCommand _createPersonButtonClickCommand = null; /// /// Comment /// public RelayCommand CreatePersonButtonClickCommand => _createPersonButtonClickCommand ?? (_createPersonButtonClickCommand = new RelayCommand(CreatePersonButtonClickCommand_Execute, CreatePersonButtonClickCommand_CanExecute)); private bool CreatePersonButtonClickCommand_CanExecute() { if (string.IsNullOrWhiteSpace(FirstNameTextBoxText) || string.IsNullOrWhiteSpace(LastNameTextBoxText)) { return false; } return true; } private void CreatePersonButtonClickCommand_Execute() { if (CreatePersonButtonClickCommand_CanExecute()) { var newPerson = new Person { FirstName = FirstNameTextBoxText, LastName = LastNameTextBoxText }; var resultId = App.Database.Insert(newPerson); if (resultId == 1) { App.Locator.MainView.UpdatePersonsList(); App.Locator.AddTransactionView.UpdatesPersonsComboBox(); RequestClose?.Invoke(null, null); ClearView(); } else { MessageBox.Show("Something bad happened", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } } #endregion #region ClearView() //////////////////////////////////////////////////////////////////////////////////////////////////// /// Clears the view. /// /// Andre Beging, 08.09.2017. //////////////////////////////////////////////////////////////////////////////////////////////////// private void ClearView() { FirstNameTextBoxText = string.Empty; LastNameTextBoxText = string.Empty; } #endregion } }