public static int Create_Trading_Deal(string i_username, TreadingDeal td) { if (DBManagment.has_session(i_username)) { if (DBManagment.Has_Specific_Card(i_username, td.CardToTrade) == 1) //check if user owns the card { if (CheckIfCardNotInDeck(i_username, td.CardToTrade) == true) { //insert into trading_erea_offer using var con = new NpgsqlConnection(DBManagment.cs); con.Open(); string sql = "Insert into trading_erea_offer (offer_id, username, card_id) values (@id, @username, @card_id)"; using var cmd = new NpgsqlCommand(sql, con); cmd.Parameters.AddWithValue("username", i_username); cmd.Parameters.AddWithValue("id", td.ID); cmd.Parameters.AddWithValue("card_id", td.CardToTrade); cmd.Prepare(); cmd.ExecuteNonQuery(); con.Close(); //insert into trading_erea_req con.Open(); sql = "Insert into trading_erea_req (offer_id, min_damage, card_type) values (@id, @min_damage, @card_type)"; using var cmd2 = new NpgsqlCommand(sql, con); cmd2.Parameters.AddWithValue("id", td.ID); cmd2.Parameters.AddWithValue("min_damage", td.MinimumDamage); cmd2.Parameters.AddWithValue("card_type", td.Type); cmd2.Prepare(); cmd2.ExecuteNonQuery(); con.Close(); return(0); } else { // card is in users deck return(3); } } else { //User doesnt own the card he wanna sell return(2); } } else { //invalid token, doesnt have session return(1); } }
public static int Trade(string i_username, int trading_id, string card_id) { if (DBManagment.has_session(i_username)) { if (DBManagment.Has_Specific_Card(i_username, card_id) == 1) { if (Check_trade_exists(trading_id) == 1) { //fetching min damage and type from request double req_min_damage = 0; string req_card_type = ""; using var con = new NpgsqlConnection(DBManagment.cs); string sql = "Select min_damage, card_type from trading_erea_req where offer_id = @offer_id"; using var cmd = new NpgsqlCommand(sql, con); con.Open(); cmd.Parameters.AddWithValue("offer_id", trading_id); cmd.Prepare(); using NpgsqlDataReader rdr = cmd.ExecuteReader(); rdr.Read(); req_min_damage = rdr.GetDouble(0); req_card_type = rdr.GetString(1); rdr.Close(); //////////////// //Fetching the data from the offered card double offered_card_damage = 0; string offered_card_type = ""; string offered_card_id = ""; string owner = ""; sql = "Select card_type, damage, trading_erea_offer.username, trading_erea_offer.card_id from all_user_cards, trading_erea_offer where trading_erea_offer.offer_id = @offer_id"; using var cmd2 = new NpgsqlCommand(sql, con); cmd2.Parameters.AddWithValue("card_id", card_id); cmd2.Parameters.AddWithValue("offer_id", trading_id); cmd2.Prepare(); using NpgsqlDataReader rdr2 = cmd2.ExecuteReader(); rdr2.Read(); offered_card_damage = rdr2.GetDouble(1); offered_card_type = rdr2.GetString(0); owner = rdr2.GetString(2); offered_card_id = rdr2.GetString(3); rdr2.Close(); //fetching the card that is given to trade double given_card_damage = 0; string given_card_type = ""; sql = "Select damage, card_type from all_user_cards WHERE card_id = @card_id"; using var cmd3 = new NpgsqlCommand(sql, con); cmd3.Parameters.AddWithValue("card_id", card_id); cmd3.Prepare(); using NpgsqlDataReader rdr3 = cmd3.ExecuteReader(); rdr3.Read(); given_card_damage = rdr3.GetDouble(0); given_card_type = rdr3.GetString(1); rdr3.Close(); if (owner != i_username) { if (given_card_damage > req_min_damage && given_card_type == req_card_type) { sql = "UPDATE all_user_cards set username = @username where card_id = @card_id"; using var cmd4 = new NpgsqlCommand(sql, con); cmd4.Parameters.AddWithValue("card_id", card_id); cmd4.Parameters.AddWithValue("username", owner); cmd4.Prepare(); cmd4.ExecuteNonQuery(); Delete_Trade(owner, trading_id); sql = "UPDATE all_user_cards set username = @username where card_id = @card_id"; using var cmd5 = new NpgsqlCommand(sql, con); cmd5.Parameters.AddWithValue("card_id", offered_card_id); cmd5.Parameters.AddWithValue("username", i_username); cmd5.Prepare(); cmd5.ExecuteNonQuery(); Delete_Trade(owner, trading_id); return(0); } else { return(5); //doesn't have the correct card } } else { //can't trade with yourself return(4); } } else { //trade doesnt exists return(3); } } else { //You dont own the card return(2); } } else { //doesnt have session / invalid token return(1); } }
public static int Configure_Deck(string i_username, List <string> cards_id) { if (DBManagment.has_session(i_username)) { Stack <int> has_added_deck = new Stack <int>() { }; //here it will store the return value of each card from the method has_specific card to see if the player has the card if (cards_id.Count == 4) { foreach (string card in cards_id) { has_added_deck.Push(DBManagment.Has_Specific_Card(i_username, card)); } if (!has_added_deck.Contains(0)) { if (!Has_Deck(i_username)) // if he doesn't have a deck, just inserting the 4 cards in the deck { foreach (string card in cards_id) { using var con = new NpgsqlConnection(DBManagment.cs); con.Open(); var sql_insert = "Insert into deck (card_id, username) values (@card_id, @username)"; using var cmd = new NpgsqlCommand(sql_insert, con); //prepared statment cmd.Parameters.AddWithValue("card_id", card); cmd.Parameters.AddWithValue("username", i_username); cmd.Prepare(); // cmd.ExecuteNonQuery(); con.Close(); } return(0); } else // if he has a deck, the old one is getting deleted and the new ones are getting inserted { //Delete the old cards using var con = new NpgsqlConnection(DBManagment.cs); con.Open(); var sql_delete = "delete from deck where username = @username"; using var cmd2 = new NpgsqlCommand(sql_delete, con); //prepared statment cmd2.Parameters.AddWithValue("username", i_username); cmd2.Prepare(); // cmd2.ExecuteNonQuery(); con.Close(); ////////////////////////// //insert the new cards foreach (string card in cards_id) { using var con2 = new NpgsqlConnection(DBManagment.cs); con.Open(); var sql_insert2 = "Insert into deck (card_id, username) values (@card_id, @username)"; using var cmd3 = new NpgsqlCommand(sql_insert2, con); //prepared statment cmd3.Parameters.AddWithValue("card_id", card); cmd3.Parameters.AddWithValue("username", i_username); cmd3.Prepare(); // cmd3.ExecuteNonQuery(); con.Close(); } return(0); } } else { //one or more cards is not obtained by the user return(3); } } else { //must be 4 Cards to create or replace deck! return(2); } } else { // NO session / invalid Token return(1); } }