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
}
}