public GameViewModel GetLastRoundInfo() { Game game = _gameRepository.GetContinueableGame(_userId); if (game == null) { throw new InvalidOperationException("Game is not found"); } List <RoundPlayer> lastRoundInfo = _roundPlayerRepository.GetLastRoundInfo(game.Id).ToList(); _cardRepository.FillRoundPlayersCards(lastRoundInfo); List <PlayerGameViewModel> players = Mapper.Map <List <RoundPlayer>, List <PlayerGameViewModel> >(lastRoundInfo); if (players[0].State == RoundPlayerState.None) { PlayerGameViewModel dealer = players[players.Count - 1]; dealer.Cards[1] = Constants.BlankCardCode; dealer.Score = 0; } var roundInfo = new GameViewModel { Players = players }; return(roundInfo); }
private void AddPlayerInArray(PlayerGameViewModel[] playersArr, PlayerGameViewModel player) { switch (player.Position) { case Position.GKP: for (int i = 0; i < 2; i++) { if (playersArr[i] == null) { playersArr[i] = player; break; } } break; case Position.DEF: for (int i = 2; i < 7; i++) { if (playersArr[i] == null) { playersArr[i] = player; break; } } break; case Position.MID: for (int i = 7; i < 12; i++) { if (playersArr[i] == null) { playersArr[i] = player; break; } } break; case Position.FWD: for (int i = 12; i < 15; i++) { if (playersArr[i] == null) { playersArr[i] = player; break; } } break; default: break; } }
private PlayerGameViewModel[] MyPlayersInArray( Dictionary <int, List <PlayerGameViewModel> > players) { PlayerGameViewModel[] playersArr = new PlayerGameViewModel[15]; foreach (var position in players) { foreach (var player in position.Value) { AddPlayerInArray(playersArr, player); } } return(playersArr); }
public IActionResult UpdatePlayerGame(int playerid, int gameid, [FromBody] PlayerGameViewModel playergame) { PlayerGame newPlayerGame = new PlayerGame() { PlayerId = playerid, GameId = gameid, Score = playergame.Score }; PlayerGame updatedPlayerGame = playergameRepository.Update(newPlayerGame); if (updatedPlayerGame == null) { return(BadRequest("PlayerGame couldn't be updated")); } PlayerGameViewModel playergameVm = entityToVmMapper.Map(newPlayerGame); return(Ok(playergameVm)); }
public IActionResult CreatePlayerGame([FromBody] PlayerGameViewModel playergameViewModel) { PlayerGame playergame = new PlayerGame() { PlayerId = playergameViewModel.PlayerId, GameId = playergameViewModel.GameId, Score = playergameViewModel.Score }; PlayerGame newPlayerGame = playergameRepository.Create(playergame); if (newPlayerGame == null) { return(BadRequest("PlayerGame couldn't be created")); } PlayerGameViewModel playergameVm = entityToVmMapper.Map(playergame); return(Ok(playergameVm)); }
public GameViewModel GetRoundInfo(int gameSkipCount, int roundSkipCount) { long gameId = _gameRepository.GetGameIdBySkipCount(_userId, gameSkipCount); List <RoundPlayer> roundPlayers = _roundRepository.GetRoundInfo(gameId, roundSkipCount).ToList(); _cardRepository.FillRoundPlayersCards(roundPlayers); List <PlayerGameViewModel> players = Mapper.Map <List <RoundPlayer>, List <PlayerGameViewModel> >(roundPlayers); if (players[0].State == RoundPlayerState.None) { PlayerGameViewModel dealer = players[players.Count - 1]; dealer.Cards[1] = Constants.BlankCardCode; dealer.Score = 0; } var roundInfo = new GameViewModel { Players = players }; return(roundInfo); }
public ActionResult AddPlayer(int id, int?selectPlayerId) { var game = this.Data.Games.GetById(id); var myPlayers = MyPlayersInArray(myTeam); if (selectPlayerId == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; Response.StatusDescription = "Select any player"; return(View("_TransferPitch", myPlayers)); } var playerExists = this.Data.Players.GetById(selectPlayerId.Value); if (!IsValidPosition(playerExists)) { Response.StatusCode = (int)HttpStatusCode.BadRequest; Response.StatusDescription = "You already have tha maximum number of " + GetFullPosition(playerExists.Position) + "s"; return(View("_TransferPitch", myPlayers)); } PlayerGameViewModel newPlayer = new PlayerGameViewModel() { Id = playerExists.Id, Name = playerExists.Name, Position = playerExists.Position, Price = playerExists.Price, Points = playerExists.Points, RoundScore = playerExists.RoundScore, Team = playerExists.Team.Initials, IsStarting = true }; if (myPlayers.Contains(newPlayer)) { Response.StatusCode = (int)HttpStatusCode.BadRequest; Response.StatusDescription = "You already bought " + playerExists.Name; return(View("_TransferPitch", myPlayers)); } budget -= playerExists.Price; int startingPlayers = myTeam.Values.Select(x => x.Where(y => y.IsStarting)) .Sum(p => p.Count()); if (startingPlayers == 11 || !IsStarting(playerExists)) { newPlayer.IsStarting = false; } ViewBag.Budget = budget; if (!myTeam.ContainsKey((int)newPlayer.Position)) { myTeam.Add((int)newPlayer.Position, new List <PlayerGameViewModel>()); } myTeam[(int)newPlayer.Position].Add(newPlayer); myPlayers = MyPlayersInArray(myTeam); return(PartialView("_TransferPitch", myPlayers)); }