protected override async void OnInitialize() { base.OnInitialize(); var bosses = await BossNotificationService.GetRegionBossesAsync(); bosses.ForEach(boss => { WorldBosses.Add(boss); }); bossSpawnTimer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) }; bossSpawnTimer.Tick += BossSpawnTimer_Tick; bossSpawnTimer.Start(); NotifyOfPropertyChange(() => WorldBosses); }
private void BossSpawnTimer_Tick(object sender, object e) { foreach (var boss in WorldBosses) { boss.NextSpawnTime = BossNotificationService.GetTimeTillNextSpawn(boss); if (boss.NextSpawnTime.Days > 0) { boss.TimeTillNextSpawn = boss.NextSpawnTime.ToString(@"d\.hh\:mm\:ss"); } else { boss.TimeTillNextSpawn = boss.NextSpawnTime.ToString(@"hh\:mm\:ss"); } } if (!IsBossesSorted()) { WorldBosses.SortStable((a, b) => { return(a.NextSpawnTime.CompareTo(b.NextSpawnTime)); }); } NotifyOfPropertyChange(() => WorldBosses); }