public async Task <GameEntity> GetSavedGameDataFromNameAsync(GameEntity game)
 {
     using (var db = new BoardDataContext())
     {
         return(await db.SavedGames.Where(x => x.BoardGridGameID == game.BoardGridGameID).FirstOrDefaultAsync());
     }
 }
        public async Task <int> SaveBoardToDatabaseAsync(StringBuilder sb, int gameId, int generation)
        {
            if (!_isConnected)
            {
                return(0);
            }

            int changes    = 0;
            var gridString = sb.ToString();

            using (var db = new BoardDataContext())
            {
                BoardEntity bg = new BoardEntity
                {
                    GameId     = gameId,
                    Generation = generation,
                    Grid       = gridString
                };

                db.BoardGrid.Add(bg);

                changes = await db.SaveChangesAsync();
            }
            return(changes);
        }
        public async Task <List <BoardEntity> > GetGameBoardDataFromSaveGameAsync(GameEntity saveData)
        {
            if (!_isConnected)
            {
                return(new List <BoardEntity>());
            }

            using (var db = new BoardDataContext())
            {
                return(await db.BoardGrid.Where(x => x.GameId == saveData.BoardGridGameID).ToListAsync());
            }
        }
        public async Task <List <GameEntity> > GetAllSavesAsync()
        {
            List <GameEntity> gameBoards = new List <GameEntity>();

            if (_isConnected)
            {
                using (var db = new BoardDataContext())
                {
                    gameBoards = await db.SavedGames.ToListAsync();
                }
            }

            return(gameBoards);
        }
        public async Task <int> SaveGameToDatabaseAsync(GameEntity game)
        {
            if (!_isConnected)
            {
                return(0);
            }

            int changes = 0;

            using (var db = new BoardDataContext())
            {
                db.SavedGames.Add(game);
                changes = await db.SaveChangesAsync();
            }
            return(changes);
        }
 public bool TestConnection()
 {
     using (var db = new BoardDataContext())
     {
         try
         {
             DbConnection connection = db.Database.Connection;
             connection.Open();
             return(true);
         }
         catch
         {
             return(false);
         }
     }
 }
 public int GetGameIdFromDb()
 {
     if (_isConnected)
     {
         using (var db = new BoardDataContext())
         {
             var sgd = db.BoardGrid;
             if (!sgd.Any())
             {
                 return(1);
             }
             else
             {
                 var dbId = sgd.OrderByDescending(x => x.GameId).FirstOrDefault().GameId;
                 return(dbId);
             }
         }
     }
     return(-1);
 }
        public async Task <int> DeleteSaveGameAsync(GameEntity game)
        {
            if (!_isConnected)
            {
                return(0);
            }

            int changes = 0;

            using (var db = new BoardDataContext())
            {
                var sgd            = db.SavedGames.Where(x => x.Id == game.Id).FirstOrDefault();
                var boardsToDelete = db.BoardGrid.Where(x => x.GameId == sgd.BoardGridGameID);

                db.BoardGrid.RemoveRange(boardsToDelete);
                db.SavedGames.Remove(sgd);

                changes = await db.SaveChangesAsync();
            }

            return(changes);
        }