private void RemoveSpell(SpellbookEntryViewModel spellbookEntryViewModel) { bool?result = _dialogService.ShowConfirmationDialog("Remove Spell", "Are you sure you want to remove " + spellbookEntryViewModel.SpellName + "?", "Yes", "No", null); if (result == true) { int level = Math.Max(spellbookEntryViewModel.Spell.Level, 0); SpellsByLevelViewModel spellsByLevelViewModel = _spellsByLevel.FirstOrDefault(x => x.Level == level); if (spellsByLevelViewModel != null) { spellsByLevelViewModel.RemoveSpell(spellbookEntryViewModel.SpellbookEntryModel); if (!spellsByLevelViewModel.Spells.Any() && _spellSlots[level] == 0) { _spellsByLevel.Remove(spellsByLevelViewModel); } } SpellbookEntryViewModel spell = _spells.FirstOrDefault(x => x.Spell.Id == spellbookEntryViewModel.Spell.Id); if (spell != null) { _spells.Remove(spell); _spellbookModel.Spells.Remove(spell.SpellbookEntryModel); } } }
/// <summary> /// Removes the spell /// </summary> public void RemoveSpell(SpellbookEntryModel spellbookEntryModel) { SpellbookEntryViewModel spellbookEntryViewModel = _spells.FirstOrDefault(x => x.SpellbookEntryModel.ID == spellbookEntryModel.ID); if (spellbookEntryViewModel != null) { _spells.Remove(spellbookEntryViewModel); OnPropertyChanged(nameof(Spells)); OnPropertyChanged(nameof(ShowClassSpellHeader)); OnPropertyChanged(nameof(ShowRaceSpellHeader)); } }