first commit
This commit is contained in:
133
PoEco.Net/DB/ClassGen.cs
Normal file
133
PoEco.Net/DB/ClassGen.cs
Normal file
@@ -0,0 +1,133 @@
|
||||
using MySql.Data.MySqlClient;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace PoEco.Net.DB
|
||||
{
|
||||
internal class ClassGen
|
||||
{
|
||||
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()};";
|
||||
conn = new MySqlConnection();
|
||||
conn.ConnectionString = myConnectionString;
|
||||
return conn;
|
||||
}
|
||||
|
||||
public static void AddClass(int id, string name)
|
||||
{
|
||||
MySqlConnection con = MxPoEDB();
|
||||
string cmdText = $"INSERT INTO poeco_classes(cid, name) VALUES ('{id}','{name}')";
|
||||
MySqlCommand cmd = new MySqlCommand(cmdText, con);
|
||||
con.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
con.Close();
|
||||
}
|
||||
|
||||
public static void AddBase(string querycmd)
|
||||
{
|
||||
MySqlConnection con = MxPoEDB();
|
||||
//string cmdText = $"INSERT INTO poeco_bases(bid, cid, name) VALUES ('{bid}', '{cid}', '{MySql.Data.MySqlClient.MySqlHelper.EscapeString(name)}')";
|
||||
string cmdText = querycmd;
|
||||
MySqlCommand cmd = new MySqlCommand(cmdText, con);
|
||||
con.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
con.Close();
|
||||
}
|
||||
|
||||
public static void AddImplicit(string querycmd)
|
||||
{
|
||||
MySqlConnection con = MxPoEDB();
|
||||
//string cmdText = $"INSERT INTO poeco_implicit(bid, imp) VALUES ('{bid}', '{MySql.Data.MySqlClient.MySqlHelper.EscapeString(imp)}')";
|
||||
string cmdText = querycmd;
|
||||
MySqlCommand cmd = new MySqlCommand(cmdText, con);
|
||||
con.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
con.Close();
|
||||
}
|
||||
|
||||
public static void DeleteClass()
|
||||
{
|
||||
MySqlConnection con = MxPoEDB();
|
||||
string cmdText = $"DELETE FROM poeco_classes";
|
||||
MySqlCommand cmd = new MySqlCommand(cmdText, con);
|
||||
con.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
con.Close();
|
||||
}
|
||||
|
||||
public static void DeleteBase()
|
||||
{
|
||||
MySqlConnection con = MxPoEDB();
|
||||
string cmdText = $"DELETE FROM poeco_bases";
|
||||
MySqlCommand cmd = new MySqlCommand(cmdText, con);
|
||||
con.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
con.Close();
|
||||
}
|
||||
|
||||
public static void DeleteImplicit()
|
||||
{
|
||||
MySqlConnection con = MxPoEDB();
|
||||
string cmdText = $"DELETE FROM poeco_implicit";
|
||||
MySqlCommand cmd = new MySqlCommand(cmdText, con);
|
||||
con.Open();
|
||||
cmd.ExecuteNonQuery();
|
||||
con.Close();
|
||||
}
|
||||
|
||||
public static void GenClass()
|
||||
{
|
||||
DeleteClass();
|
||||
DeleteBase();
|
||||
DeleteImplicit();
|
||||
DirectoryInfo dir = new DirectoryInfo("data/lua");
|
||||
int cid = 1;
|
||||
int bid = 1;
|
||||
StringBuilder sCommandBase = new StringBuilder("INSERT INTO poeco_bases(bid, cid, name) VALUES ");
|
||||
List<string> RowsBase = new List<string>();
|
||||
StringBuilder sCommandImp = new StringBuilder("INSERT INTO poeco_implicit(bid, imp) VALUES ");
|
||||
List<string> RowsImp = new List<string>();
|
||||
foreach (var f in dir.GetFiles())
|
||||
{
|
||||
var fnp = Path.GetFileNameWithoutExtension(f.FullName);
|
||||
var fnpUp = char.ToUpper(f.Name[0]) + fnp.Substring(1);
|
||||
AddClass(cid, fnpUp);
|
||||
Utilities.Message.drawProgress(cid, dir.EnumerateFiles().Count());
|
||||
foreach (var l in File.ReadLines(@"data/lua/" + f.Name))
|
||||
{
|
||||
int ll = l.Length;
|
||||
|
||||
if (l.Contains("itemBases["))
|
||||
{
|
||||
RowsBase.Add($"('{bid}','{cid}','{MySql.Data.MySqlClient.MySqlHelper.EscapeString(l.Split('"', '"')[1])}')");
|
||||
}
|
||||
if (l.Contains("\timplicit = \""))
|
||||
{
|
||||
RowsImp.Add($"('{bid}','{MySql.Data.MySqlClient.MySqlHelper.EscapeString(l.Split('"', '"')[1])}')");
|
||||
bid++;
|
||||
}
|
||||
}
|
||||
cid++;
|
||||
}
|
||||
sCommandBase.Append(string.Join(",", RowsBase));
|
||||
sCommandBase.Append(";");
|
||||
AddBase(sCommandBase.ToString());
|
||||
sCommandImp.Append(string.Join(",", RowsImp));
|
||||
sCommandImp.Append(";");
|
||||
AddImplicit(sCommandImp.ToString());
|
||||
sCommandBase.Clear();
|
||||
sCommandImp.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user