Exemplo n.º 1
0
        private void SelectPrevious()
        {
            if (_encounters.Any())
            {
                EncounterListItemViewModel selected = _encounters.FirstOrDefault(x => x.IsSelected);

                foreach (EncounterListItemViewModel encounter in _encounters)
                {
                    encounter.IsSelected = false;
                }

                if (selected == null)
                {
                    _encounters[_encounters.Count - 1].IsSelected = true;
                    _selectedEncounter = new EncounterViewModel(_encounters[_encounters.Count - 1].EncounterModel);
                }
                else
                {
                    int index = Math.Max(_encounters.IndexOf(selected) - 1, 0);
                    _encounters[index].IsSelected = true;
                    _selectedEncounter            = new EncounterViewModel(_encounters[index].EncounterModel);
                }

                OnPropertyChanged(nameof(SelectedEncounter));
            }
        }
Exemplo n.º 2
0
        private void Delete()
        {
            if (_selectedEncounter != null)
            {
                string message = String.Format("Are you sure you want to delete {0}?",
                                               _selectedEncounter.Name);

                bool?result = _dialogService.ShowConfirmationDialog("Delete Encounter", message, "Yes", "No", null);

                if (result == true)
                {
                    _compendium.DeleteEncounter(_selectedEncounter.EncounterModel.Id);

                    EncounterListItemViewModel listItem = _encounters.FirstOrDefault(x => x.EncounterModel.Id == _selectedEncounter.EncounterModel.Id);
                    if (listItem != null)
                    {
                        _encounters.Remove(listItem);
                    }

                    _selectedEncounter = null;

                    _compendium.SaveEncounters();

                    OnPropertyChanged(nameof(SelectedEncounter));

                    if (_encounterEditViewModel != null)
                    {
                        CancelEditEncounter();
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void SortEncounters()
        {
            if (_encounters != null && _encounters.Count > 0)
            {
                List <EncounterModel> encounters = _encounterSearchService.Sort(_encounters.Select(x => x.EncounterModel), _encounterSearchInput.SortOption);
                for (int i = 0; i < encounters.Count; ++i)
                {
                    if (encounters[i].Id != _encounters[i].EncounterModel.Id)
                    {
                        EncounterListItemViewModel encounter = _encounters.FirstOrDefault(x => x.EncounterModel.Id == encounters[i].Id);
                        if (encounter != null)
                        {
                            _encounters.Move(_encounters.IndexOf(encounter), i);
                        }
                    }
                }

                List <EncounterListItemViewModel> sorted = _encounters.OrderBy(x => x.Name).ToList();

                for (int i = 0; i < sorted.Count; ++i)
                {
                    if (!sorted[i].Equals(_encounters[i]))
                    {
                        _encounters.Move(_encounters.IndexOf(sorted[i]), i);
                    }
                }
            }
        }
 private void ViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
 {
     if (e.PropertyName == nameof(EncountersViewModel.SelectedEncounter))
     {
         EncounterListItemViewModel selected = _viewModel.Encounters.FirstOrDefault(x => x.IsSelected);
         if (selected != null)
         {
             if (_tree.ItemContainerGenerator.ContainerFromItem(selected) is TreeViewItem item)
             {
                 item.BringIntoView();
             }
         }
     }
 }
Exemplo n.º 5
0
        private void SelectEncounter(EncounterListItemViewModel encounterItem)
        {
            bool selectEncounter = true;

            if (_encounterEditViewModel != null)
            {
                if (_editHasUnsavedChanges)
                {
                    string body = String.Format("{0} has unsaved changes.{1}What would you like to do?",
                                                _selectedEncounter.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 (!SaveEditEncounter())
                        {
                            selectEncounter = false;
                        }
                    }
                    else if (result == false)
                    {
                        CancelEditEncounter();
                    }
                    else
                    {
                        selectEncounter = false;
                    }
                }
                else
                {
                    CancelEditEncounter();
                }
            }

            if (selectEncounter)
            {
                foreach (EncounterListItemViewModel item in _encounters)
                {
                    item.IsSelected = false;
                }
                encounterItem.IsSelected = true;

                _selectedEncounter = new EncounterViewModel(encounterItem.EncounterModel);
                OnPropertyChanged(nameof(SelectedEncounter));
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// Searches, applying current sorting and filtering
        /// </summary>
        public void Search()
        {
            _encounters.Clear();
            foreach (EncounterModel encounterModel in _encounterSearchService.Search(_encounterSearchInput))
            {
                _encounters.Add(new EncounterListItemViewModel(encounterModel));
            }

            if (_selectedEncounter != null)
            {
                EncounterListItemViewModel encounter = _encounters.FirstOrDefault(x => x.EncounterModel.Id == _selectedEncounter.EncounterModel.Id);
                if (encounter != null)
                {
                    encounter.IsSelected = true;
                }
            }
        }
Exemplo n.º 7
0
        private bool SaveEditEncounter()
        {
            bool saved = false;

            if (_encounterEditViewModel.EncounterModel != null)
            {
                _encounterEditViewModel.EncounterModel.Id = _selectedEncounter.EncounterModel.Id;
                _compendium.UpdateEncounter(_encounterEditViewModel.EncounterModel);

                _selectedEncounter = new EncounterViewModel(_encounterEditViewModel.EncounterModel);

                EncounterListItemViewModel oldListItem = _encounters.FirstOrDefault(x => x.EncounterModel.Id == _encounterEditViewModel.EncounterModel.Id);
                if (oldListItem != null)
                {
                    if (_encounterSearchService.SearchInputApplies(_encounterSearchInput, _encounterEditViewModel.EncounterModel))
                    {
                        oldListItem.UpdateModel(_encounterEditViewModel.EncounterModel);
                    }
                    else
                    {
                        _encounters.Remove(oldListItem);
                    }
                }

                _encounterEditViewModel = null;
                _editHasUnsavedChanges  = false;

                SortEncounters();

                _compendium.SaveEncounters();

                OnPropertyChanged(nameof(SelectedEncounter));
                OnPropertyChanged(nameof(EditingEncounter));
                OnPropertyChanged(nameof(IsEditingEncounter));
                OnPropertyChanged(nameof(HasUnsavedChanges));

                saved = true;
            }

            return(saved);
        }
Exemplo n.º 8
0
        private void Copy()
        {
            if (_selectedEncounter != null)
            {
                bool copyEncounter = true;

                if (_encounterEditViewModel != null)
                {
                    if (_editHasUnsavedChanges)
                    {
                        string body = String.Format("{0} has unsaved changes.{1}What would you like to do?",
                                                    _selectedEncounter.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 (!SaveEditEncounter())
                            {
                                copyEncounter = false;
                            }
                        }
                        else if (result == false)
                        {
                            CancelEditEncounter();
                        }
                        else
                        {
                            copyEncounter = false;
                        }
                    }
                    else
                    {
                        CancelEditEncounter();
                    }
                }

                if (copyEncounter)
                {
                    EncounterModel encounterModel = new EncounterModel(_selectedEncounter.EncounterModel);
                    encounterModel.Name += " (copy)";
                    encounterModel.Id    = Guid.NewGuid();

                    _compendium.AddEncounter(encounterModel);

                    if (_encounterSearchService.SearchInputApplies(_encounterSearchInput, encounterModel))
                    {
                        EncounterListItemViewModel listItem = new EncounterListItemViewModel(encounterModel);
                        _encounters.Add(listItem);
                        foreach (EncounterListItemViewModel item in _encounters)
                        {
                            item.IsSelected = false;
                        }
                        listItem.IsSelected = true;
                    }

                    _selectedEncounter = new EncounterViewModel(encounterModel);

                    SortEncounters();

                    _compendium.SaveEncounters();

                    OnPropertyChanged(nameof(SelectedEncounter));
                }
            }
        }