2025-06-28 15:38:37 -04:00

175 lines
6.2 KiB
C#

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace PoEco.Net.DB
{
internal class Stash
{
public static MySqlConnection MxPoEDB()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = $"server={JSON.Settings.GetdbHost()};port={JSON.Settings.GetdbPort()};uid={JSON.Settings.GetdbUser()};pwd={JSON.Settings.GetdbPass()};database={JSON.Settings.GetdbName()};;max pool size=200";
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
return conn;
}
public static List<int> EnumerateTabByUID(int uid, string type)
{
List<int> t = new List<int>();
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_tabs WHERE uid = '{uid}' AND type = '{type}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
MySqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
t.Add(DR.GetInt32(1));
}
con.Close();
return t;
}
public static int GetClassIDByBase(string ibase)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"SELECT * FROM poeco_bases WHERE name LIKE '%{MySqlHelper.EscapeString(ibase)}%'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
row.Read();
int user = row.GetInt32(1);
con.Close();
return user;
}
else
{
con.Close();
return 0;
}
}
public static string GetClassByID(int iclass)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_classes WHERE cid = '{iclass}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows)
{
row.Read();
string user = row.GetString(1);
con.Close();
return user;
}
else
{
con.Close();
return null;
}
}
}
public static int GetBaseIDByName(string ibase)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_bases WHERE name LIKE '%{MySql.Data.MySqlClient.MySqlHelper.EscapeString(ibase)}%'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return row.GetInt32(0); } else { return 0; }
}
}
public static void AddItemTable(int uid, int ti, string uiid, int ilvl, int cid, int bid, string name, string mods, string img, string txt, string b64, double min, double max)
{
using (var con = MxPoEDB())
{
string cmdText = $"INSERT INTO poeco_items(uid, tid, uiid, ilvl, cid, bid, name, mods, img, txt, b64, min, max) VALUES ('{uid}','{ti}','{uiid}','{ilvl}','{cid}','{bid}','{name}','{mods}','{img}','{txt}','{b64}','{min}','{max}')";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
public static void AddProfitTable(int uid, string uiid, string type, string name, int stack, double value)
{
using (var con = MxPoEDB())
{
string cmdText = $"INSERT INTO poeco_profits(uid, uiid, type, name, stack, cvalue) VALUES ('{uid}','{uiid}','{type}','{name}','{stack}','{value}')";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
public static void SetTabNameByTID(int uid, int tid, string name)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_tabs SET name = '{name}' WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void SetTabRGBByTID(int uid, int tid, string rgb)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"UPDATE poeco_tabs SET rgb = '{rgb}' WHERE uid = '{uid}' AND tid = '{tid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static bool CheckItemExistsDB(string iid)
{
using (var con = MxPoEDB())
{
string cmdText = $"SELECT * FROM poeco_items WHERE uiid = '{iid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
return row.HasRows;
}
}
public static void DeleteSpecificItem(int userid, string uuid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_items WHERE uid = '{userid}' AND uiid = '{uuid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void DeleteItems(int userid)
{
MySqlConnection con = MxPoEDB();
string cmdText = $"DELETE FROM poeco_items WHERE uid = '{userid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}