summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2017-11-18 19:49:37 +0100
committeremkael <emkael@tlen.pl>2017-11-18 19:49:37 +0100
commit8cda79bab92e0b6cf06a6b270662e13ea6a7ad30 (patch)
tree962051456e54a9153c92663540452fb3d9b1f17d
parentc11772fd05c82af11645bff5059ce70545e86e0c (diff)
Revised tournament database detection.
Fixes #25.
-rw-r--r--Aktywator/MySQLTournament.cs28
-rw-r--r--Aktywator/ParyTournament.cs4
-rw-r--r--Aktywator/TeamyTournament.cs4
3 files changed, 12 insertions, 24 deletions
diff --git a/Aktywator/MySQLTournament.cs b/Aktywator/MySQLTournament.cs
index c3cb29f..f745a91 100644
--- a/Aktywator/MySQLTournament.cs
+++ b/Aktywator/MySQLTournament.cs
@@ -10,24 +10,15 @@ namespace Aktywator
{
public MySQL mysql;
- public MySQLTournament(string name)
+ public MySQLTournament(string name, int type)
{
this._name = name;
+ this._type = type;
+ if (this._type < Tournament.TYPE_UNKNOWN || this._type > Tournament.TYPE_RRB)
+ {
+ this._type = Tournament.TYPE_UNKNOWN;
+ }
mysql = new MySQL(name);
- recognizeType();
- }
-
- private void recognizeType()
- {
- if ((mysql.selectOne("SHOW TABLES LIKE 'admin'") == "admin")
- && (mysql.selectOne("SHOW FIELDS IN admin LIKE 'dnazwa'") == "dnazwa")
- && (mysql.selectOne("SHOW TABLES LIKE 'zawodnicy'") == "zawodnicy"))
- _type = Tournament.TYPE_PARY;
- else if ((mysql.selectOne("SHOW TABLES LIKE 'admin'") == "admin")
- && (mysql.selectOne("SHOW FIELDS IN admin LIKE 'teamcnt'") == "teamcnt")
- && (mysql.selectOne("SHOW TABLES LIKE 'players'") == "players"))
- _type = Tournament.TYPE_TEAMY;
- else _type = Tournament.TYPE_UNKNOWN;
}
public override string ToString()
@@ -39,13 +30,10 @@ namespace Aktywator
{
List<MySQLTournament> list = new List<MySQLTournament>();
MySQL c = new MySQL("");
- data dbs = c.select("SHOW DATABASES;");
+ data dbs = c.select("SELECT TABLE_SCHEMA, COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME = 'admin' AND COLUMN_NAME IN ('dnazwa', 'teamcnt') ORDER BY TABLE_SCHEMA;");
while (dbs.Read())
{
- MySQLTournament t = new MySQLTournament(dbs.GetString(0));
- if (t.type > Tournament.TYPE_UNKNOWN)
- list.Add(t);
- t.mysql.close();
+ list.Add(new MySQLTournament(dbs.GetString(0), "dnazwa".Equals(dbs.GetString(1)) ? Tournament.TYPE_PARY : Tournament.TYPE_TEAMY));
}
dbs.Close();
return list;
diff --git a/Aktywator/ParyTournament.cs b/Aktywator/ParyTournament.cs
index 4950c3d..2ee7243 100644
--- a/Aktywator/ParyTournament.cs
+++ b/Aktywator/ParyTournament.cs
@@ -7,8 +7,8 @@ namespace Aktywator
{
class ParyTournament: MySQLTournament
{
- public ParyTournament(string name)
- : base(name)
+ public ParyTournament(string name, int type = Tournament.TYPE_PARY)
+ : base(name, type)
{
this._type = Tournament.TYPE_PARY;
}
diff --git a/Aktywator/TeamyTournament.cs b/Aktywator/TeamyTournament.cs
index 7fb4f1c..8da063d 100644
--- a/Aktywator/TeamyTournament.cs
+++ b/Aktywator/TeamyTournament.cs
@@ -7,8 +7,8 @@ namespace Aktywator
{
class TeamyTournament : MySQLTournament
{
- public TeamyTournament(string name)
- : base(name)
+ public TeamyTournament(string name, int type = Tournament.TYPE_TEAMY)
+ : base(name, type)
{
this._type = Tournament.TYPE_TEAMY;
}