/// <summary> /// Adds the spell /// </summary> public void AddSpell(SpellbookEntryModel spellbookEntryModel) { _spells.Add(new SpellbookEntryViewModel(spellbookEntryModel)); _spells = new ObservableCollection <SpellbookEntryViewModel>(_spells.OrderBy(x => x.SpellName)); OnPropertyChanged(nameof(Spells)); OnPropertyChanged(nameof(ShowClassSpellHeader)); OnPropertyChanged(nameof(ShowRaceSpellHeader)); }
/// <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)); } }
private void AddSpell(SpellModel spellModel) { if (!_spells.Any(x => x.Spell.Id == spellModel.Id)) { SpellbookEntryModel spellbookEntryModel = new SpellbookEntryModel(); spellbookEntryModel.Spell = spellModel; int level = Math.Max(spellModel.Level, 0); SpellsByLevelViewModel spellsByLevelViewModel = _spellsByLevel.FirstOrDefault(x => x.Level == level); if (spellsByLevelViewModel != null) { spellsByLevelViewModel.AddSpell(spellbookEntryModel); } else { spellsByLevelViewModel = new SpellsByLevelViewModel(level, _spellSlots.Count > level ? _spellSlots[level] : 0, _spellbookModel.BasedOnClass, _spellbookModel.BasedOnRace); spellsByLevelViewModel.AddSpell(spellbookEntryModel); bool added = false; if (_spellsByLevel.Count > 0) { for (int i = 0; i < _spellsByLevel.Count; ++i) { if (_spellsByLevel[i].Level > level) { _spellsByLevel.Insert(i, spellsByLevelViewModel); added = true; break; } } } if (!added) { _spellsByLevel.Add(spellsByLevelViewModel); } } _spells.Add(new SpellbookEntryViewModel(spellbookEntryModel)); _spellbookModel.Spells.Add(spellbookEntryModel); } }
/// <summary> /// Creates an instance of <see cref="SpellbookEntryViewModel"/> /// </summary> public SpellbookEntryViewModel(SpellbookEntryModel spellbookEntryModel) { _spellbookEntryModel = spellbookEntryModel; _viewDetailsCommand = new RelayCommand(obj => true, obj => ViewSpellDetails()); }