summaryrefslogtreecommitdiff
path: root/Aktywator/Setting.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Aktywator/Setting.cs')
-rw-r--r--Aktywator/Setting.cs41
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);
+ }
+ }
}
}
}