private void LoadPlayers(string updatedPlayer = null) { _ = Dispatcher.InvokeAsync(() => { if (updatedPlayer == null || (updatedPlayer != null && !players.Items.Contains(updatedPlayer))) { var playerList = ChatManager.GetArchivedPlayers(); if (playerList.Count > 0) { if (players.ItemsSource == null) { players.Items.Clear(); } players.ItemsSource = playerList; string player = ConfigUtil.GetSetting("ChatSelectedPlayer"); if (string.IsNullOrEmpty(player) && !string.IsNullOrEmpty(ConfigUtil.PlayerName) && !string.IsNullOrEmpty(ConfigUtil.ServerName)) { player = ConfigUtil.PlayerName + "." + ConfigUtil.ServerName; } players.SelectedIndex = (player != null && playerList.IndexOf(player) > -1) ? playerList.IndexOf(player) : 0; } } else { if (!RefreshTimer.IsEnabled) { RefreshTimer.Start(); } } }, DispatcherPriority.DataBind); }
private void UpdateDeleteChatMenu() { deleteChat.Items.Clear(); ChatManager.GetArchivedPlayers().ForEach(player => { MenuItem item = new MenuItem() { IsEnabled = true, Header = player }; deleteChat.Items.Add(item); item.Click += (object sender, RoutedEventArgs e) => { if (MessageBox.Show("Clear all chat for " + player + ", are you sure?", "Clear Chat Archive", MessageBoxButton.YesNo) == MessageBoxResult.Yes && ChatManager.DeleteArchivedPlayer(player)) { if (PlayerChatManager != null && PlayerChatManager.GetCurrentPlayer().Equals(player, StringComparison.Ordinal)) { PlayerChatManager.Reset(); } else { deleteChat.Items.Remove(item); deleteChat.IsEnabled = deleteChat.Items.Count > 0; } } }; }); deleteChat.IsEnabled = deleteChat.Items.Count > 0; }