private void CancelEditTable() { _editHasUnsavedChanges = false; _tableEditViewModel = null; OnPropertyChanged(nameof(EditingTable)); OnPropertyChanged(nameof(IsEditingTable)); OnPropertyChanged(nameof(HasUnsavedChanges)); }
private void EditTable(RandomTableViewModel tableModel) { if (tableModel != null) { _tableEditViewModel = new RandomTableEditViewModel(tableModel.RandomTableModel); _tableEditViewModel.PropertyChanged += _tableEditViewModel_PropertyChanged; OnPropertyChanged(nameof(EditingTable)); OnPropertyChanged(nameof(IsEditingTable)); } }
private bool SaveEditTable() { bool saved = false; if (_tableEditViewModel.RandomTableModel != null) { _tableEditViewModel.RandomTableModel.Id = _selectedTable.RandomTableModel.Id; _compendium.UpdateTable(_tableEditViewModel.RandomTableModel); _selectedTable = new RandomTableViewModel(_tableEditViewModel.RandomTableModel); ListItemViewModel <RandomTableModel> oldListItem = _tables.FirstOrDefault(x => x.Model.Id == _tableEditViewModel.RandomTableModel.Id); if (oldListItem != null) { if (_tableSearchService.SearchInputApplies(_tableSearchInput, _tableEditViewModel.RandomTableModel)) { InitializeListItemDetails(oldListItem, _tableEditViewModel.RandomTableModel); } else { _tables.Remove(oldListItem); } } _tableEditViewModel = null; _editHasUnsavedChanges = false; SortTables(); _compendium.SaveTables(); OnPropertyChanged(nameof(SelectedTagOption)); OnPropertyChanged(nameof(SelectedTable)); OnPropertyChanged(nameof(EditingTable)); OnPropertyChanged(nameof(IsEditingTable)); OnPropertyChanged(nameof(HasUnsavedChanges)); saved = true; } return(saved); }
private void Add() { bool addTable = true; if (_tableEditViewModel != null) { if (_editHasUnsavedChanges) { string body = String.Format("{0} has unsaved changes.{1}What would you like to do?", _selectedTable.Name, Environment.NewLine + Environment.NewLine); string accept = "Save and Continue"; string reject = "Discard Changes"; string cancel = "Cancel Navigation"; bool? result = _dialogService.ShowConfirmationDialog("Unsaved Changes", body, accept, reject, cancel); if (result == true) { if (!SaveEditTable()) { addTable = false; } } else if (result == false) { CancelEditTable(); } else { addTable = false; } } else { CancelEditTable(); } } if (addTable) { RandomTableModel tableModel = new RandomTableModel(); _compendium.AddTable(tableModel); if (_tableSearchService.SearchInputApplies(_tableSearchInput, tableModel)) { ListItemViewModel <RandomTableModel> listItem = new ListItemViewModel <RandomTableModel>(tableModel); InitializeListItemDetails(listItem, tableModel); _tables.Add(listItem); foreach (ListItemViewModel <RandomTableModel> item in _tables) { item.IsSelected = false; } listItem.IsSelected = true; } _selectedTable = new RandomTableViewModel(tableModel); _tableEditViewModel = new RandomTableEditViewModel(tableModel); _tableEditViewModel.PropertyChanged += _tableEditViewModel_PropertyChanged; SortTables(); _compendium.SaveTables(); OnPropertyChanged(nameof(SelectedTagOption)); OnPropertyChanged(nameof(EditingTable)); OnPropertyChanged(nameof(IsEditingTable)); OnPropertyChanged(nameof(SelectedTable)); } }