diff options
Diffstat (limited to 'Aktywator/Setting.cs')
-rw-r--r-- | Aktywator/Setting.cs | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/Aktywator/Setting.cs b/Aktywator/Setting.cs index bde6fd1..802e92a 100644 --- a/Aktywator/Setting.cs +++ b/Aktywator/Setting.cs @@ -171,12 +171,43 @@ namespace Aktywator } } - public static void saveSectionGroups(Sql sql, bool value) + public static void saveSectionGroups(Sql sql, bool value, int teamTableOffset = 0) { - StringBuilder sb = new StringBuilder("UPDATE Tables SET `Group` = "); - sb.Append(value ? "1" : "`Section`"); - sb.Append(";"); - sql.query(sb.ToString()); + if (teamTableOffset == 0) + { + StringBuilder sb = new StringBuilder("UPDATE Tables SET `Group` = "); + sb.Append(value ? "1" : "`Section`"); + sb.Append(";"); + sql.query(sb.ToString()); + } + else + { + int group = 1; + StringBuilder tablesQuery = new StringBuilder("SELECT `Section`, (`Table` MOD "); + tablesQuery.Append(teamTableOffset); + tablesQuery.Append(") FROM `Tables` GROUP BY `Section`, (`Table` MOD "); + tablesQuery.Append(teamTableOffset); + tablesQuery.Append(");"); + OleDbDataReader tables = sql.select(tablesQuery.ToString()); + List<string> queries = new List<string>(); + while (tables.Read()) + { + StringBuilder sb = new StringBuilder("UPDATE `Tables` SET `Group` = "); + sb.Append(group++); + sb.Append(" WHERE `Section` = "); + sb.Append(Bws.bwsNumber(tables, 0)); + sb.Append(" AND (`Table` MOD "); + sb.Append(teamTableOffset); + sb.Append(") = "); + sb.Append(Bws.bwsNumber(tables, 1)); + sb.Append(";"); + queries.Add(sb.ToString()); + } + foreach (string query in queries) + { + sql.query(query); + } + } } } } |