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