Exemplo n.º 1
0
        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);
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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));
        }