示例#1
0
        public static LudoEngine Load(string name, LudoDbContext context)
        {
            try
            {
                // Find the game in the database using name
                var gameEntity = context.Games.Include(g => g.NextToRollDice).Include(g => g.Winner).Where(g => g.Name == name).Single();

                LudoEngine game = CreateGameFromEntity(gameEntity, context);

                // Get all the players in the game
                var gameMemberEntities = context.GameMembers.Include(gm => gm.Piece).Where(gm => gm.GameId == gameEntity.GameId).ToList();

                // Setup a player object for each member in the game
                foreach (var gameMemberEntity in gameMemberEntities)
                {
                    var pieceEntity = context.Pieces.Where(p => p.PieceId == gameMemberEntity.Piece.PieceId).Single();
                    var pieceType   = GetPieceTypeFromColor(pieceEntity.Color);

                    var user = CreatePlayerFromGameMember(gameMemberEntity, pieceType, gameEntity, context);
                    game.Players.Add(user);
                }
                return(game);
            }catch
            {
                return(null);
            }
        }
示例#2
0
        private static LudoEngine CreateGameFromEntity(Game gameEntity, LudoDbContext context)
        {
            // Instantiate a new game and set the needed properties to values from the gameEntity
            LudoEngine game = new LudoEngine(context);

            game.gameName      = gameEntity.Name;
            game.CurrentPlayer = gameEntity.NextToRollDice;
            game.game          = gameEntity;
            game.Winner        = gameEntity.Winner;
            return(game);
        }