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; }
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); }