public IEnumerable <Game> Get() { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <Game>() { SqlCommand = "SELECT id_game, player1, player2, (SELECT count(*) FROM turns_in_history t WHERE t.id_game = g.id_game) + 1, CONCAT(CONVERT(varchar(10), (SELECT nickname from players p join credentials c on (c.id_cred = p.id_cred) WHERE id_player = player1)),' vs ',CONVERT(varchar(10), (SELECT nickname from players p join credentials c on (c.id_cred = p.id_cred) WHERE id_player = player2))), CASE WHEN id_turncur IS NULL THEN 0 WHEN id_turncur IS NOT NULL THEN CASE WHEN (SELECT id_player FROM moves m JOIN current_turns c on (m.id_move = c.id_move) WHERE c.id_turncur = g.id_turncur) = g.player1 THEN 2 WHEN (SELECT id_player FROM moves m JOIN current_turns c on (m.id_move = c.id_move) WHERE c.id_turncur = g.id_turncur) = g.player2 THEN 1 END END from games g WHERE player1 = (SELECT p.id_player FROM credentials c join players p on (c.id_cred = p.id_cred) WHERE c.nickname = @nick) or player2 = (SELECT p.id_player FROM credentials c join players p on (c.id_cred = p.id_cred) WHERE c.nickname = @nick)", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login } }, ModelExtractor = reader => new Game { id_game = (int)reader[0], id_player1 = (int)reader[1], id_player2 = (int)reader[2], count_turns = (int)reader[3], //zamiast tego ktora tura z kolei name = (string)reader[4], who_move = (int)reader[5] } }; return(sqlCommand.Execute()); }
public IEnumerable <GameInHistory> GetHistory() { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <GameInHistory>() { SqlCommand = "SELECT id_ghis, player1, player2, score, CONCAT(CONVERT(varchar(10), (SELECT nickname from players p join credentials c on (c.id_cred = p.id_cred) WHERE id_player = player1)),' vs ',CONVERT(varchar(10), (SELECT nickname from players p join credentials c on (c.id_cred = p.id_cred) WHERE id_player = player2))) FROM games_in_history WHERE player1 = (SELECT p.id_player FROM credentials c join players p on (c.id_cred = p.id_cred) WHERE c.nickname = @nick) or player2 = (SELECT p.id_player FROM credentials c join players p on (c.id_cred = p.id_cred) WHERE c.nickname = @nick)", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login } }, ModelExtractor = reader => new GameInHistory { id_game = (int)reader[0], id_player1 = (int)reader[1], id_player2 = (int)reader[2], score = (int)reader[3], name = (string)reader[4] } }; return(sqlCommand.Execute()); }
public IEnumerable <User> GetFriends() { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <User>() { SqlCommand = "SELECT c.id_cred, id_player, nickname FROM friendships JOIN players p on(player2 = id_player) join credentials c on (c.id_cred = p.id_cred) WHERE player1 = (SELECT id_player FROM credentials c join players p on(c.id_cred = p.id_cred) WHERE nickname = @nick)", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login } }, ModelExtractor = reader => new User { //user jest na odwrót w bazie i nie mogę tego zmienić bez rozwalania bazy dlatego tu jest 1 i 0, a nie 0 i 1 Id = (int)reader[1], Id_cred = (int)reader[0], nickname = (string)reader[2] } }; return(sqlCommand.Execute()); }
public void Post() { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <Credentials>() { SqlCommand = "EXECUTE addPlayer @vNickname = @nick, @vPass = @pass", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login }, new SqlParameter("@pass", SqlDbType.VarChar) { Value = credentials.password } } }; sqlCommand.Execute(); }
public IEnumerable <User> GetNick(int id) { var sqlCommand = new SimpleSqlCommand <User>() { SqlCommand = "SELECT id_player, c.id_cred, nickname FROM players p join credentials c on(c.id_cred = p.id_cred) WHERE id_player = @id", Parameters = new SqlParameter[] { new SqlParameter("@id", SqlDbType.Int) { Value = id } }, ModelExtractor = reader => new User { Id = (int)reader[0], Id_cred = (int)reader[1], nickname = (string)reader[2] } }; return(sqlCommand.Execute()); }
public void Post([FromBody] Invitation value) { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <Credentials>() { SqlCommand = "INSERT INTO games_invitations(sender, reciever) values((SELECT id_player FROM credentials c join players p on(c.id_cred = p.id_cred) WHERE nickname = @nick),@rec)", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login }, new SqlParameter("@rec", SqlDbType.Int) { Value = value.Reciever } } }; sqlCommand.Execute(); }
public void Put([FromBody] Invitation value) { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <Credentials>() { SqlCommand = "EXECUTE addFriendship @vPlayer1 = @nick, @vPlayer2 = @rec", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login }, new SqlParameter("@rec", SqlDbType.Int) { Value = value.Reciever } } }; sqlCommand.Execute(); }
public void Put([FromBody] GameAccept value) { var sqlCommand = new SimpleSqlCommand <Credentials>() { SqlCommand = "EXECUTE addGame @vPlayer1 = @id1, @vPlayer2 = @id2, @vId_version = 1", Parameters = new SqlParameter[] { new SqlParameter("@id1", SqlDbType.Int) { Value = value.IdPlayer1 }, new SqlParameter("@id2", SqlDbType.Int) { Value = value.IdPlayer2 } } }; sqlCommand.Execute(); var sqlCommand2 = new SimpleSqlCommand <Credentials>() { SqlCommand = "DELETE FROM games_invitations WHERE sender = @id1 AND reciever = @id2", Parameters = new SqlParameter[] { new SqlParameter("@id1", SqlDbType.Int) { Value = value.IdPlayer1 }, new SqlParameter("@id2", SqlDbType.Int) { Value = value.IdPlayer2 } } }; sqlCommand2.Execute(); }
public IEnumerable <Move> GetMoes(int id) { var sqlCommand = new SimpleSqlCommand <Move>() { SqlCommand = "EXECUTE returnMoves @vIdGame = @id", Parameters = new SqlParameter[] { new SqlParameter("@id", SqlDbType.Int) { Value = id } }, ModelExtractor = reader => new Move { XCoord = (int)reader[0], YCoord = (int)reader[1], id_player = (int)reader[2], IdGame = id } }; return(sqlCommand.Execute()); }
public bool GetCred() { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <DefaultResponse>() { SqlCommand = "SELECT COUNT(*) FROM players p JOIN credentials c ON (p.id_cred = c.id_cred) WHERE nickname = @nick AND pass = @pass", //SqlCommand = "SELECT COUNT(*) FROM credentials", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login }, new SqlParameter("@pass", SqlDbType.VarChar) { Value = credentials.password } }, ModelExtractor = reader => new DefaultResponse { Success = false, Message = reader[0].ToString() } }; //List<int> result = sqlCommand.Execute(); List <DefaultResponse> response_list = sqlCommand.Execute(); //return result[0]; if (int.Parse(response_list[0].Message) > 0) { return(true); } return(false); }
public IEnumerable <User> GetGameInvit() { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <User>() { SqlCommand = "SELECT sender, c.id_cred, nickname from games_invitations join players p on (sender = id_player) join credentials c on (c.id_cred = p.id_cred) WHERE reciever = (SELECT id_player FROM credentials c join players p on(c.id_cred = p.id_cred) WHERE nickname = @nick)", Parameters = new SqlParameter[] { new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login } }, ModelExtractor = reader => new User { Id = (int)reader[0], Id_cred = (int)reader[1], nickname = (string)reader[2] } }; return(sqlCommand.Execute()); }
public void Post([FromBody] Move value) { var credentials = ControllerUtility.GetCredentials(Request.Headers); var sqlCommand = new SimpleSqlCommand <User>() { SqlCommand = "EXECUTE addMove @mNick = @nick, @mX_coord = @xcoord, @mY_coord = @ycoord, @mId_game = @idgame", Parameters = new SqlParameter[] { new SqlParameter("@idgame", SqlDbType.Int) { Value = value.IdGame }, new SqlParameter("@xcoord", SqlDbType.Int) { Value = value.XCoord }, new SqlParameter("@ycoord", SqlDbType.Int) { Value = value.YCoord }, new SqlParameter("@nick", SqlDbType.VarChar) { Value = credentials.login } } }; sqlCommand.Execute(); var sqlCommand1 = new SimpleSqlCommand <Move>() { SqlCommand = "EXECUTE returnMoves @vIdGame = @id", Parameters = new SqlParameter[] { new SqlParameter("@id", SqlDbType.Int) { Value = value.IdGame } }, ModelExtractor = reader => new Move { XCoord = (int)reader[0], YCoord = (int)reader[1], id_player = (int)reader[2], IdGame = value.IdGame } }; var movesList = sqlCommand1.Execute(); if (movesList.Count == 400) { var sqlCommandR = new SimpleSqlCommand <User>() { SqlCommand = "EXECUTE addResult @vId_game = @idgame, @vId_Score = 0", Parameters = new SqlParameter[] { new SqlParameter("@idgame", SqlDbType.Int) { Value = value.IdGame } } }; sqlCommandR.Execute(); return; } int[,] board = new int[20, 20]; for (int y = 0; y < 20; y++) { for (int x = 0; x < 20; x++) { board[x, y] = -1; } } foreach (var move in movesList) { board[move.XCoord, move.YCoord] = move.id_player; } int winner = 0; for (int y = 2; y < 18 && winner == 0; y++) { for (int x = 2; x < 18 && winner == 0; x++) { if (board[x, y] == -1) { continue; } if (CheckVictory(board, x, y, 1, 0) || CheckVictory(board, x, y, 1, 1) || CheckVictory(board, x, y, 0, 1) || CheckVictory(board, x, y, -1, 1)) { winner = board[x, y]; } } } if (winner != 0) { var sqlCommandW = new SimpleSqlCommand <User>() { SqlCommand = "EXECUTE addResult @vId_game = @idgame, @vId_Score = @idwinner", Parameters = new SqlParameter[] { new SqlParameter("@idgame", SqlDbType.Int) { Value = value.IdGame }, new SqlParameter("@idwinner", SqlDbType.Int) { Value = winner } } }; sqlCommandW.Execute(); } }