Example #1
0
        public ServiceResponse Start()
        {
            int currentPlayerId = 0;
            // Assign positions to Pieces - GamePlayerPiecePosition
            List <GamePlayer> gamePlayers = LudoContext.GamePlayers
                                            .Where(c => c.GameId == Game.Id).ToList();

            List <GamePlayerPiecePosition> gamePlayerPiecePositions = new List <GamePlayerPiecePosition>();

            foreach (GamePlayer gamePlayer in gamePlayers)
            {
                AddGamePlayerPiecePosition(gamePlayerPiecePositions, gamePlayer.PlayerId, gamePlayer.Quadrant);

                if (gamePlayer.Quadrant == 0)
                {
                    currentPlayerId = gamePlayer.PlayerId;
                }
            }

            LudoContext.GamePlayerPiecePositions.AddRange(gamePlayerPiecePositions);

            // Change GameStatusId - Games
            LudoContext.Games
            .Single(c => c.Id == Game.Id)
            .GameStatusId = 2;

            // Create New Entry in GameProgress
            GameProgress gameProgress = new GameProgress
            {
                GameId                  = Game.Id,
                CurrentPlayerId         = currentPlayerId,
                CurrentPlayerDiceRolled = false,
                LastActionDateTime      = DateTime.Now
            };

            LudoContext.GameProgresses.Add(gameProgress);

            LudoContext.DiceStacks.Add(new DiceStack
            {
                GameId     = Game.Id,
                DiceValue1 = -1,
                DiceValue2 = -1,
                DiceValue3 = -1
            });

            GameDetails gameDetails = new GameDetails(Game, gamePlayers, gamePlayerPiecePositions, gameProgress);

            LudoContext.SaveChanges();

            return(new ServiceResponse
            {
                Data = gameDetails,
                Messages = new List <Message>()
            });
        }
Example #2
0
        public ServiceResponse GetGameDetails(int gameId)
        {
            Game game = LudoContext.Games.Single(c => c.Id == gameId);

            List <GamePlayer> gamePlayers = LudoContext.GamePlayers.Where(c => c.GameId == gameId).ToList();

            List <GamePlayerPiecePosition> gamePlayerPiecePositions =
                LudoContext.GamePlayerPiecePositions.Where(c => c.GameId == gameId).ToList();

            GameProgress gameProgress = LudoContext.GameProgresses.Single(c => c.GameId == gameId);

            GameDetails gameDetails = new GameDetails(game, gamePlayers, gamePlayerPiecePositions, gameProgress);

            return(new ServiceResponse
            {
                Data = gameDetails,
                Messages = new List <Message>()
            });
        }