From fe71701968627f6ee3e1066dbb1ee6d2ab08afcc Mon Sep 17 00:00:00 2001 From: emkael Date: Wed, 24 Oct 2018 14:55:33 +0200 Subject: Grouping tables in sections extended to support teams IMP results --- Aktywator/Setting.cs | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) (limited to 'Aktywator/Setting.cs') 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 queries = new List(); + 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); + } + } } } } -- cgit v1.2.3