private void OnPropertyHasChanged(object sender, StatusChangedEventArgs args) { MaidInfo maid = SelectedMaid; if (maid == null) { return; } if (maid.Maid != args.CallerMaid) { return; } if (valueUpdateQueue[currentQueue].ContainsKey(args.Tag)) { Debugger.WriteLine(LogLevel.Warning, $"Tag already in update queue {currentQueue}! Aborting..."); return; } switch (args.Tag) { case MaidChangeType.NewGetWork: case MaidChangeType.Work: valueUpdateQueue[currentQueue].Add(args.Tag, () => maid.UpdateHasWork(args.ID)); break; case MaidChangeType.NewGetSkill: case MaidChangeType.Skill: valueUpdateQueue[currentQueue].Add(args.Tag, () => maid.UpdateHasSkill(args.ID)); break; } }