public Cell GetCell(int arenaId, int positionX, int positionY)
        {
            IDatabase database   = Database.Instance();
            var       parameters = new List <SqlParameter> {
                new SqlParameter("@ARENA_ID", arenaId),
                new SqlParameter("@POSITION_X", positionX),
                new SqlParameter("@POSITION_Y", positionY),
            };
            var commonData = database.ExecuteQuery(
                "SELECT PLAYER_ID, IS_MINE FROM ARENA_CELL WHERE ARENA_ID=@ARENA_ID AND POSITION_X=@POSITION_X AND POSITION_Y=@POSITION_Y",
                parameters.ToArray());

            var parameters2 = new List <SqlParameter> {
                new SqlParameter("@ARENA_ID", arenaId),
                new SqlParameter("@POSITION_X", positionX),
                new SqlParameter("@POSITION_Y", positionY),
            };

            var nearMinesCounterStatement = "select count(*) as near_mines from ARENA_CELL where ARENA_ID=@ARENA_ID and " +
                                            "( (POSITION_X=(@POSITION_X -1) AND POSITION_Y=@POSITION_Y AND IS_MINE=1) OR " +
                                            "(POSITION_X=(@POSITION_X +1) AND POSITION_Y=@POSITION_Y AND IS_MINE=1) OR " +
                                            "(POSITION_X=@POSITION_X AND POSITION_Y=(@POSITION_Y +1) AND IS_MINE=1) OR " +
                                            "(POSITION_X=@POSITION_X AND POSITION_Y=(@POSITION_Y -1) AND IS_MINE=1) OR " +
                                            "(POSITION_X=(@POSITION_X +1) AND POSITION_Y=(@POSITION_Y +1) AND IS_MINE=1) OR " +
                                            "(POSITION_X=(@POSITION_X -1) AND POSITION_Y=(@POSITION_Y -1) AND IS_MINE=1) OR " +
                                            "(POSITION_X=(@POSITION_X +1) AND POSITION_Y=(@POSITION_Y -1) AND IS_MINE=1) OR " +
                                            "(POSITION_X=(@POSITION_X -1) AND POSITION_Y=(@POSITION_Y +1) AND IS_MINE=1) )";
            var nearMinesDS = database.ExecuteQuery(nearMinesCounterStatement, parameters2.ToArray());

            var cell = ArenaMapper.ToCelEntity(commonData, nearMinesDS);


            return(cell);
        }
Exemple #2
0
        public void Delete(int id)
        {
            IDatabase database = Database.Instance();

            var parameters = new List <SqlParameter> {
                new SqlParameter("@ID", id)
            };

            database.ExecuteNonQuery(@"DELETE PLAYER WHERE ID = @ID", parameters.ToArray());
        }
Exemple #3
0
        public void Update(Player player)
        {
            IDatabase database   = Database.Instance();
            var       parameters = new List <SqlParameter> {
                new SqlParameter("@NICKNAME", player.NickName)
            };

            database.ExecuteNonQuery(@"UPDATE PLAYER SET NICKNAME = @NICKNAME",
                                     parameters.ToArray());
        }
Exemple #4
0
        public Player FindById(int id)
        {
            IDatabase database = Database.Instance();

            var parameters = new List <SqlParameter> {
                new SqlParameter("@ID", id)
            };
            var dataSet = database.ExecuteQuery(@"SELECT * from PLAYER WHERE ID = @ID", parameters.ToArray());

            return(PlayerMapper.ToEntity(dataSet));
        }
Exemple #5
0
        public void Delete(int id)
        {
            IDatabase database = Database.Instance();

            database.ExecuteNonQuery("DELETE GAME_PLAYER WHERE GAME_ID=@ID",
                                     new List <SqlParameter> {
                new SqlParameter("@ID", id)
            }.ToArray());

            database.ExecuteNonQuery("DELETE GAME WHERE ID=@ID",
                                     new List <SqlParameter> {
                new SqlParameter("@ID", id)
            }.ToArray());
        }
        public void UpdateCellPlayer(int arenaId, int positionX, int positionY, int playerId)
        {
            IDatabase database = Database.Instance();

            var parameters = new List <SqlParameter> {
                new SqlParameter("@PLAYER_ID", playerId),
                new SqlParameter("@ARENA_ID", arenaId),
                new SqlParameter("@POSITION_X", positionX),
                new SqlParameter("@POSITION_Y", positionY),
            };

            database.ExecuteNonQuery("UPDATE ARENA_CELL SET PLAYER_ID=@PLAYER_ID WHERE ARENA_ID=@ARENA_ID AND POSITION_X=@POSITION_X AND POSITION_Y=@POSITION_Y",
                                     parameters.ToArray());
        }
Exemple #7
0
        public Game FindById(int id)
        {
            IDatabase database = Database.Instance();

            var parameters = new List <SqlParameter> {
                new SqlParameter("@ID", id)
            };
            var gameDs = database.ExecuteQuery(@"SELECT * from GAME WHERE ID = @ID", parameters.ToArray());

            var gameParameters = new List <SqlParameter> {
                new SqlParameter("@ID", id)
            };
            var cellsDs = database.ExecuteQuery(@"SELECT * from GAME_PLAYER WHERE GAME_ID = @ID", gameParameters.ToArray());

            return(GameMapper.ToEntity(gameDs, cellsDs));
        }
        public Arena FindById(int id)
        {
            IDatabase database = Database.Instance();

            var parameters = new List <SqlParameter> {
                new SqlParameter("@ID", id)
            };
            var arenaDs = database.ExecuteQuery(@"SELECT * from ARENA WHERE ID = @ID", parameters.ToArray());

            var cellParameters = new List <SqlParameter> {
                new SqlParameter("@ID", id)
            };
            var cellsDs = database.ExecuteQuery(@"SELECT * from ARENA_CELL WHERE ARENA_ID = @ID", cellParameters.ToArray());

            return(ArenaMapper.ToArenaEntity(arenaDs, cellsDs));
        }
        public void Delete(int id)
        {
            IDatabase database    = Database.Instance();
            var       transaction = database.BeginTransaction();

            try
            {
                DeleteArenaTable(id, database, transaction);
                DeleteArenaCellTable(id, database, transaction);
                transaction.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine("There was an issue deleting Arena: " + e.Message);
                transaction.Rollback();
            }
        }
Exemple #10
0
        public void Update(Arena arena)
        {
            IDatabase database    = Database.Instance();
            var       transaction = database.BeginTransaction();

            try
            {
                UpdateArenaTable(arena, database, transaction);
                UpdateArenaCellTable(arena, database, transaction);
                transaction.Commit();
            }
            catch (Exception e)
            {
                Console.WriteLine("There was an issue updating Arena: " + e.Message);
                transaction.Rollback();
            }
        }
Exemple #11
0
        public int Create(Player player)
        {
            var columns = "";
            var values  = "";

            IDatabase database   = Database.Instance();
            var       parameters = new List <SqlParameter> {
                new SqlParameter("@NICKNAME", player.NickName)
            };

            columns += "NICKNAME";
            values  += "@NICKNAME";

            return((int)database.ExecuteScalar(
                       "INSERT INTO PLAYER(" + columns + ") " +
                       "OUTPUT INSERTED.ID VALUES (" + values + ")",
                       parameters.ToArray()));
        }
Exemple #12
0
        public void Update(Game game)
        {
            IDatabase database = Database.Instance();

            var transaction = database.BeginTransaction();

            try
            {
                UpdateGameTable(game, database, transaction);
                UpdateGamePlayerTable(game.Players, game.Id, database, transaction);
                transaction.Commit();
                Console.WriteLine("Game [" + game.Id + "] successfully updated.");
            }
            catch (Exception e)
            {
                Console.WriteLine("There was an issue updating Game: " + e.Message);
                transaction.Rollback();
            }
        }
Exemple #13
0
        public int Create(Game game)
        {
            IDatabase database = Database.Instance();

            var transaction = database.BeginTransaction();
            var gameId      = -1;

            try
            {
                gameId = InsertGameTable(game, database, transaction);
                InsertGamePlayerTable(game.Players, gameId, database, transaction);
                transaction.Commit();
                Console.WriteLine("Game [" + gameId + "] successfully persisted.");
            }
            catch (Exception e)
            {
                Console.WriteLine("There was an issue persisting Game: " + e.Message);
                transaction.Rollback();
            }

            return(gameId);
        }
Exemple #14
0
        public int Create(Arena arena)
        {
            IDatabase database    = Database.Instance();
            var       transaction = database.BeginTransaction();

            try
            {
                var columns = "";
                var values  = "";

                var arenaId = InsertArena(arena, columns, values, database, transaction);
                InsertCell(arena.Cells, arenaId, database, transaction);
                Console.WriteLine("Arena [" + arenaId + "] successfully persisted.");
                transaction.Commit();
                return(arenaId);
            }
            catch (Exception e)
            {
                Console.WriteLine("There was an issue persisting Arena: " + e.Message);
                transaction.Rollback();
                return(-1);
            }
        }