2024-09-22 23:12:21 -04:00

118 lines
4.2 KiB
C#

using MySqlConnector;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MxWSim.Utilities
{
internal class DB
{
public static MySqlConnection MxWDB()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = string.Format("server={0};port={1};uid={2};pwd={3};database={4};", Settings.GetDBHost(), Settings.GetDBPort(), Settings.GetDBUser(), Settings.GetDBPass(), Settings.GetDBName());
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
return conn;
}
public static string GetUserNameByUID(int uid)
{
using (var con = MxWDB())
{
string cmdText = $"SELECT * FROM mxw_user WHERE uid = '{uid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return row["account"].ToString(); } else { return ""; }
}
}
public static int GetUserUIDByQID(int qid)
{
using (var con = MxWDB())
{
string cmdText = $"SELECT * FROM mxw_queue WHERE qid = '{qid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return Convert.ToInt32(row["uid"]); } else { return 0; }
}
}
public static int GetSimLatestSIDByUID(int uid)
{
using (var con = MxWDB())
{
string cmdText = $"SELECT * FROM mxw_sim WHERE uid = '{uid}' ORDER BY sid DESC";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return Convert.ToInt32(row["sid"]); } else { return 0; }
}
}
public static string GetQueueDataByQID(int qid)
{
using (var con = MxWDB())
{
string cmdText = $"SELECT * FROM mxw_queue WHERE qid = '{qid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
var row = cmd.ExecuteReader();
if (row.HasRows) { row.Read(); return row["data"].ToString(); } else { return ""; }
}
}
public static void SetQueueStatus(string status, int qid)
{
MySqlConnection con = MxWDB();
string cmdText = $"UPDATE mxw_queue SET status = '{status}' WHERE qid = '{qid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static void SetMxWSimStatus(string status, int bid)
{
MySqlConnection con = MxWDB();
string cmdText = $"UPDATE mxw_status SET status = '{status}' WHERE bid = '{bid}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
public static int CountAwaitingInQueueByStatus(string status)
{
MySqlConnection con = MxWDB();
string cmdText = $"SELECT COUNT(*) FROM mxw_queue WHERE status = '{status}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
int count = Convert.ToInt32(cmd.ExecuteScalar());
return count;
}
public static List<int> EnumerateQueueByStatus(string status)
{
List<int> i = new List<int>();
MySqlConnection con = MxWDB();
string cmdText = $"SELECT * FROM mxw_queue WHERE status = '{status}'";
MySqlCommand cmd = new MySqlCommand(cmdText, con);
con.Open();
MySqlDataReader DR = cmd.ExecuteReader();
while (DR.Read())
{
i.Add(DR.GetInt32(0));
}
return i;
}
}
}