private void LoadLobbies(LobbyCollection lobbies) { if (lobbies.Count == 0) { _skinDefinition.Lobbies = new LobbyCollectionViewModel(Constants.DefaultNumberOfLobbyItems, _skinDefinition.Triggers); } else { _skinDefinition.Lobbies = new LobbyCollectionViewModel(lobbies.First().Items.Count, _skinDefinition.Triggers); } foreach (var lobby in lobbies) { var lobbyViewModel = new LobbyViewModel(new PlayerStatusTypeViewModel(PlayerStatusType.FromId(lobby.PlayerStatus), _skinDefinition.Triggers), lobby.FavoriteSize); foreach (var item in lobby.Items) { var itemViewModel = FindLobbyItemSource(item.Id); if (itemViewModel != null) { lobbyViewModel.Items.Add(new LobbyItemViewModel(itemViewModel)); } else { _buildErrors.Add(new ErrorMessageViewModel("Lobby arena", $"Cannot find the lobby item {item.Id} in the list of available lobby items", ErrorServerity.Warning, null)); } } _skinDefinition.Lobbies.Add(lobbyViewModel); } }
private void LoadArenaLayouts(Arena arena, ArenaViewModel arenaViewModel) { foreach (var arenaLayout in arena.Layouts) { var arenaLayoutViewModel = new ArenaLayoutViewModel(arenaViewModel, new PlayerStatusTypeViewModel(PlayerStatusType.FromId(arenaLayout.PlayerStatus), _skinDefinition.Triggers), arenaLayout.Attributes, arenaLayout.DataGridInfo); LoadArenaLayoutAlsoPlayingGames(arenaViewModel.Name, arenaLayoutViewModel, arenaLayout.AlsoPlayingGames); LoadArenaLayoutFilters(arenaLayoutViewModel, arenaLayout.FilteringInfo); LoadArenaLayoutGames(arenaViewModel.Name, arenaLayoutViewModel, arenaLayout.Games, arenaViewModel.IsNewGamesArena); arenaViewModel.Layouts.Add(arenaLayoutViewModel); } if (arenaViewModel.Layouts.Count > 0) { arenaViewModel.Layouts[0].Activate(); } }
private void LoadGamesGroupCollection(string description, GameGroupLayoutCollection source, GameGroupLayoutCollectionViewModel destination) { foreach (var layout in source) { var viewModel = new GameGroupLayoutViewModel(new PlayerStatusTypeViewModel(PlayerStatusType.FromId(layout.PlayerStatus), _skinDefinition.Triggers)); foreach (var game in layout.Games) { AddGameToCollection(game.Id, viewModel.Games, description); } destination.Add(viewModel); } }