118 lines
4.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|