コード例 #1
0
        public async Task<Model.Game> GetAsync(long id)
        {
            // Fetch data
            var entity = await context.Games.AsNoTracking().SingleAsync(x => x.ID == id);
            entity.Tokens = await context.Tokens.AsNoTracking().Where(x => x.GameID == id).ToListAsync();

            var players = new[] { 
                                new Model.Player(entity.Player1ID, entity.Player1Name, false), 
                                new Model.Player(entity.Player2ID, entity.Player2Name, entity.SinglePlayerMode) 
                            };

            var bounds = new Model.Bounds(entity.NumRows, entity.NumCols);
            var properties = new Model.GameProperties(bounds, entity.RowsPerPlayer, entity.BombsPerPlayer);
            var status = Model.GameStatus.CreateFromEntity(entity, players);

            var tokens = entity.Tokens.Select(x => new Model.Token(x.ID, x.PlayerID, (Model.TokenType)x.TokenType, x.Row, x.Col));
            var gameBoard = new Model.GameBoard(properties, tokens);

            var game = new Model.Game(entity.ID, players[0], players[1], status, gameBoard);

            return game;
        }
コード例 #2
0
        public async Task <Model.Game> GetAsync(long id)
        {
            // Fetch data
            var entity = await context.Games.AsNoTracking().SingleAsync(x => x.ID == id);

            entity.Tokens = await context.Tokens.AsNoTracking().Where(x => x.GameID == id).ToListAsync();

            var players = new[] {
                new Model.Player(entity.Player1ID, entity.Player1Name, false),
                new Model.Player(entity.Player2ID, entity.Player2Name, entity.SinglePlayerMode)
            };

            var bounds     = new Model.Bounds(entity.NumRows, entity.NumCols);
            var properties = new Model.GameProperties(bounds, entity.RowsPerPlayer, entity.BombsPerPlayer);
            var status     = Model.GameStatus.CreateFromEntity(entity, players);

            var tokens    = entity.Tokens.Select(x => new Model.Token(x.ID, x.PlayerID, (Model.TokenType)x.TokenType, x.Row, x.Col));
            var gameBoard = new Model.GameBoard(properties, tokens);

            var game = new Model.Game(entity.ID, players[0], players[1], status, gameBoard);

            return(game);
        }