void UpdateActiveQuests() { if (r_Quests.UpdateRawData(KanColleGame.Current.Port.Quests.Table.Values, r => new QuestViewModel(r), delegate { })) { All = r_Quests.Values.ToArray(); OnPropertyChanged(nameof(All)); var rQuestGroups = All.ToLookup(r => r.Source.Type); Daily = rQuestGroups[QuestType.Daily].ToArray(); Weekly = rQuestGroups[QuestType.Weekly].ToArray(); Monthly = rQuestGroups[QuestType.Monthly].ToArray(); Once = rQuestGroups[QuestType.Once].ToArray(); Others = rQuestGroups[QuestType.Special].ToArray(); OnPropertyChanged(nameof(Daily)); OnPropertyChanged(nameof(Weekly)); OnPropertyChanged(nameof(Monthly)); OnPropertyChanged(nameof(Once)); OnPropertyChanged(nameof(Others)); } var rActiveQuests = KanColleGame.Current.Port.Quests.Active; if (rActiveQuests != null) { Active = rActiveQuests.Select(r => r != Quest.Dummy ? r_Quests[r.ID] : r_Dummy).ToArray(); r_Owner.Overview.ActiveQuests = Active; OnPropertyChanged(nameof(Active)); } }
protected override void BeforeRefresh() => r_Ships.UpdateRawData(KanColleGame.Current.Port.Ships.Values, r => new ShipViewModel(r, r_Owner.TypeMaps[r.Info.Type]), (r, _) => r.UpdateType(r_Owner.TypeMaps));