void RefreshGameList(List <GameDetails> games) { lock (_gameListLocker) { //Log.Info("Refreshing list..."); var list = games.Select(x => new HostedGameViewModel(x)).ToList(); list.AddRange(broadcastListener.Games.Select(x => new HostedGameViewModel(x))); //Log.Info("Got hosted games list"); ShowKillGameButton = Prefs.IsAdmin; Dispatcher.Invoke( new Action( () => { //Log.Info("Refreshing visual list"); var removeList = HostedGameList.Where(i => list.All(x => x.Id != i.Id)).ToList(); removeList.ForEach(x => HostedGameList.Remove(x)); var addList = list.Where(i => this.HostedGameList.All(x => x.Id != i.Id)).ToList(); HostedGameList.AddRange(addList); var dbgames = GameManager.Get().Games.ToArray(); foreach (var g in HostedGameList) { var li = list.FirstOrDefault(x => x.Id == g.Id); g.Update(li, dbgames); } //Log.Info("Visual list refreshed"); })); } }
void RefreshGameList() { lock (timer) { Log.Info("Refreshing list..."); var list = Program.LobbyClient.GetHostedGames().Select(x => new HostedGameViewModel(x)).ToList(); Log.Info("Got hosted games list"); Dispatcher.Invoke( new Action( () => { Log.Info("Refreshing visual list"); if (HideUninstalledGames) { list = list.Where(game => game.GameName != "{Unknown Game}").ToList(); } var removeList = HostedGameList.Where(i => list.All(x => x.Port != i.Port)).ToList(); removeList.ForEach(x => HostedGameList.Remove(x)); var addList = list.Where(i => this.HostedGameList.All(x => x.Port != i.Port)).ToList(); HostedGameList.AddRange(addList); foreach (var g in HostedGameList) { g.Update(); } Log.Info("Visual list refreshed"); })); } }
void RefreshGameList(object sender, ElapsedEventArgs elapsedEventArgs) { lock (timer) { //Log.Info("Refreshing list..."); var list = Program.LobbyClient.GetHostedGames().Select(x => new HostedGameViewModel(x)).ToList(); list.AddRange(broadcastListener.Games.Select(x => new HostedGameViewModel(x))); //Log.Info("Got hosted games list"); this.ShowKillGameButton = false; if (_room != null && Program.LobbyClient != null && Program.LobbyClient.Me != null && Program.LobbyClient.Me.ApiUser != null && Program.LobbyClient.IsConnected) { var allowed = new List <User>(); allowed.AddRange(_room.AdminList); allowed.AddRange(_room.ModeratorList); allowed.AddRange(_room.OwnerList); if (allowed.Any(x => x.ApiUser != null && x.ApiUser.Id == Program.LobbyClient.Me.ApiUser.Id)) { this.ShowKillGameButton = true; } } Dispatcher.Invoke( new Action( () => { //Log.Info("Refreshing visual list"); var removeList = HostedGameList.Where(i => list.All(x => x.Id != i.Id)).ToList(); removeList.ForEach(x => HostedGameList.Remove(x)); var addList = list.Where(i => this.HostedGameList.All(x => x.Id != i.Id)).ToList(); HostedGameList.AddRange(addList); var games = GameManager.Get().Games.ToArray(); foreach (var g in HostedGameList) { var li = list.FirstOrDefault(x => x.Id == g.Id); g.Update(li, games); } //Log.Info("Visual list refreshed"); })); } }
void RefreshGameList() { Trace.WriteLine("Refreshing list..."); var list = Program.LobbyClient.GetHostedGames().Select(x => new HostedGameViewModel(x)).ToList(); Dispatcher.Invoke(new Action(() => { var removeList = HostedGameList.Where(i => !list.Any(x => x.Port == i.Port)).ToList(); removeList.ForEach(x => HostedGameList.Remove(x)); var addList = list.Where(i => !HostedGameList.Any(x => x.Port == i.Port)).ToList(); HostedGameList.AddRange(addList); foreach (var g in HostedGameList) { g.Update(); } })); }