public HealerViewModel() { _loadCollections(); _prepareViewSources(); _loadCommands(); CurrentHealerRule = new HealerRule(0, "", Spells.First(), HealItems.First(), 0, 110, 0, HealerConditions.Hitpoints, 500, 700, false, false, true); _healerService = new HealerService(this); }
private void _addRule(string obj) { //check which collection to use ObservableCollection <HealerRule> collection = obj == "Spell" ? SpellHealerRules : ItemHealerRules; CollectionViewSource viewSource = obj == "Spell" ? SpellHealerRulesViewSource : ItemHealerRulesViewSource; //correct priority if (CurrentHealerRule.Priority > collection.Count) { CurrentHealerRule.Priority = collection.Count; } //remove triggers if its not a range trigger string condition = CurrentHealerRule.Condition.ToString(); if (!condition.Contains("Hitpoint") && !condition.Contains("Mana")) { CurrentHealerRule.MinTrigger = null; CurrentHealerRule.MaxTrigger = null; CurrentHealerRule.TriggerSplitter = ""; CurrentHealerRule.TriggerDecoration = ""; } else { CurrentHealerRule.MinTrigger = CurrentHealerRule.MinTrigger ?? 0; CurrentHealerRule.MaxTrigger = CurrentHealerRule.MaxTrigger ?? 100; CurrentHealerRule.TriggerSplitter = "~"; CurrentHealerRule.TriggerDecoration = condition.Contains("Percent") ? "%" : ""; } //check if the rule exists already based on id HealerRule ruleChecker = collection.FirstOrDefault(r => r.Equals(CurrentHealerRule)); if (ruleChecker == null) { //fix priority if its being added in the middle collection.Where(r => r.Priority >= CurrentHealerRule.Priority).ToList().ForEach(r => r.Priority++); collection.Add(CurrentHealerRule); } viewSource.View.Refresh(); CurrentHealerRule = new HealerRule(collection.Count, "", Spells.First(), HealItems.First(), 0, 110, collection.Count, HealerConditions.Hitpoints, 500, 700, false, false, true); AddButtonText = "ü"; AddButtonTooltip = "Add"; }