public static void SaveAnzeigetabelle(ClsCommand rb) { Core.DB.Anzeigetabelle at = new JavaScriptSerializer().Deserialize <Core.DB.Anzeigetabelle>(rb.Value1); Core.DBControler.ClsOptionsControler.SaveAnzeigetabelle(at); if (at.Tabelle == "T01") { ClsDBVariablen.Instance.SetTabellenVariableWert(at.Tabelle, ClsTabellenfunktionen.TabelleToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (at.Tabelle == "T02") { ClsDBVariablen.Instance.SetTabellenVariableWert(at.Tabelle, ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (at.Tabelle == "T03") { ClsDBVariablen.Instance.SetTabellenVariableWert(at.Tabelle, ClsTabellenfunktionen.EreignisseToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (at.Tabelle == "Strafen") { ClsTabellenfunktionen.StrafenToVariable(ClsGlobal.Instance.Strafen1, "A"); ClsTabellenfunktionen.StrafenToVariable(ClsGlobal.Instance.Strafen2, "B"); } if (at.Tabelle == "T06") { ClsTabellenfunktionen.TorschuetzeToVariable(ClsGlobal.Instance.TurnierID); } GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "Anzeigetabellen")))); }
public static void ReOpenMatch(ClsCommand rb) { Core.DB.TSpiele s = new JavaScriptSerializer().Deserialize <Core.DB.TSpiele>(rb.Value1); Core.DBControler.ClsTurnierControler.SaveSpielStatus(s, 2); // update der Ereignistabelle ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); }
public static void RecPerPageChange(ClsCommand rb) { ClsDBVariablen.Instance.SetTabellenVariableRecPerPage(rb.Value1, Convert.ToInt32(rb.Value2)); if (rb.Value1 == "T01") { ClsDBVariablen.Instance.SetTabellenVariableWert(rb.Value1, ClsTabellenfunktionen.TabelleToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (rb.Value1 == "T02") { ClsDBVariablen.Instance.SetTabellenVariableWert(rb.Value1, ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (rb.Value1 == "T03") { ClsDBVariablen.Instance.SetTabellenVariableWert(rb.Value1, ClsTabellenfunktionen.EreignisseToVariable_Json(ClsGlobal.Instance.TurnierID)); } GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "TVariablen")))); }
private static void Turnierwechsel(int turnierID) { // Tabellenfilter ClsTabellenfunktionen.IniTableFilter(); // TurnierTabellen ClsDBVariablen.Instance.SetTabellenVariableWert("T01", ClsTabellenfunktionen.TabelleToVariable_Json(turnierID)); // te - TurnierErgebnisse(spielplan) ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json(turnierID)); // tg - TurnierGruppen (und Combofelder zum filtern der Tabelleninhalten füllen) ////this.LoadGruppenToTG(); // tn - TurnierEreignisse ClsDBVariablen.Instance.SetTabellenVariableWert("T03", ClsTabellenfunktionen.EreignisseToVariable_Json(turnierID)); // th - Torjäger ClsTabellenfunktionen.TorschuetzeToVariable(turnierID); }
public static void SetTablefilter(ClsCommand rb) { // Filter setzen (from x in ClsGlobal.Instance.TableFilterList where x.Table == rb.Value1 && x.Field == rb.Value2 select x).FirstOrDefault().Value = rb.Value3; // Filter zurück an clients senden GlobalServerEvents.SendMessage(null, new ClsStringEventArgs(ClsRequests.DataRequest(new ClsCommand(command: "TableFilter")))); // Tabelleninhalt setzetn switch (rb.Value1) { case "T01": ClsDBVariablen.Instance.SetTabellenVariableWert("T01", ClsTabellenfunktionen.TabelleToVariable_Json(ClsGlobal.Instance.TurnierID)); break; case "T02": ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); break; case "T03": ClsDBVariablen.Instance.SetTabellenVariableWert("T03", ClsTabellenfunktionen.EreignisseToVariable_Json(ClsGlobal.Instance.TurnierID)); break; } }
public static void TablePageSelection(ClsCommand rb) { ClsTableFilter tf = (from x in ClsGlobal.Instance.TableFilterList where x.Table == rb.Value1 && x.Field == "SelPage" select x).FirstOrDefault(); tf.IntValue = Convert.ToInt32(rb.Value2); if (rb.Value1 == "T01") { ClsDBVariablen.Instance.SetTabellenVariableWert(rb.Value1, ClsTabellenfunktionen.TabelleToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (rb.Value1 == "T02") { ClsDBVariablen.Instance.SetTabellenVariableWert(rb.Value1, ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); } if (rb.Value1 == "T03") { ClsDBVariablen.Instance.SetTabellenVariableWert(rb.Value1, ClsTabellenfunktionen.EreignisseToVariable_Json(ClsGlobal.Instance.TurnierID)); } }
/// <summary> /// Nach Rundenplazierung die Mannschften in den Folgerunden eintragen. /// </summary> /// <param name="spiel">todo: describe spiel parameter on IstMannschaftenGegenueber</param> private static void IstMannschaftenGegenueber(TSpiele spiel) { try { // Gruppenübergereifende Plaetze ermitten und mannschaften in folgerunden eintragen (1ter 1ter, 2ter 1ter,...) int grpManAnz = ClsTurnierControler.Tabellen((int)ClsGlobal.Instance.TurnierID, spiel.Gruppe).Count; // So oft wie Mannschaften je Gruppe (Anzeahl der Mannschaften wird al Platzzaehler verwendet) for (int p = 1; p <= grpManAnz; p += 1) { // alle Tabelleneintraege der Runde List <TTabellen> erg1 = ClsTurnierControler.Tabellen((int)ClsGlobal.Instance.TurnierID, spiel.Runde); // Alle x-platzierten lesen List <TTabellen> erg = (from d in erg1 where d.Platz == p select d).ToList(); if (erg != null) { // nach vorgaben sortieren erg = ClsFunktionen.STTabellem(erg); // erg enthaelt nun alle x-platzierten nach sortiervorgabe int platz = 1; for (int i = 0; i < erg.Count; i++) { string suchstr = platz.ToString() + "ter " + p.ToString() + "ter-Runde " + spiel.Runde.ToString(); List <TSpiele> s0 = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID); List <TSpiele> s1 = (from s in s0 where s.Status < 2 select s).ToList(); List <TSpiele> p1 = (from s in s1 where s.IstMannA == suchstr select s).ToList(); if (p1.Any()) { for (int j = 0; j < p1.Count; j++) { p1[j].IstMannA = erg[i].Mannschaft; p1[j].Status = p1[j].Status + 1; ClsTurnierControler.SaveSpiel(p1[j]); } } List <TSpiele> p2 = (from s in s1 where s.IstMannB == suchstr select s).ToList(); if (p2.Any()) { for (int j = 0; j < p1.Count; j++) { p2[j].IstMannB = erg[i].Mannschaft; p2[j].Status = p2[j].Status + 1; ClsTurnierControler.SaveSpiel(p2[j]); } } platz += 1; // suche Tabelleneinträge der folgerunde und ersetzte Mannschftsnamen List <TTabellen> tab = ClsTurnierControler.Tabellen(ClsGlobal.Instance.TurnierID); TTabellen gefunden = (from x in tab where x.Mannschaft == suchstr select x).FirstOrDefault(); if (gefunden != null) { gefunden.Mannschaft = erg[i].Mannschaft; ClsTurnierControler.SaveTabellen(gefunden); } } ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); } } } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); } }
/// <summary> /// Nach Gruppenplazierung die Mannschften in den Folgerunden eintragen. /// </summary> /// <param name="spiel">todo: describe spiel parameter on IstMannschaftenGI</param> private static void IstMannschaftenGI(string Gruppe) { try { // platz in Gruppe ermitteln über order by und mannschaften in folgerunden eintragen List <TTabellen> e = ClsTurnierControler.Tabellen(ClsGlobal.Instance.TurnierID, Gruppe); if (e.Any()) { for (int i = 0; i < e.Count; i++) { if (e[i] != null) { string suchstr = e[i].Platz.ToString() + "ter-" + Gruppe; // hole alle Spiele des Turniers List <TSpiele> s0 = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID); // filter Spiele die den Status kleiner 2 haben List <TSpiele> s1 = (from s in s0 where s.Status < 2 select s).ToList(); // suche Spiele die SuchStr in MannA haben List <TSpiele> p1 = (from s in s1 where s.IstMannA == suchstr select s).ToList(); if (p1.Any()) { for (int j = 0; j < p1.Count; j++) { p1[j].IstMannA = e[i].Mannschaft; p1[j].Status = p1[j].Status + 1; ClsTurnierControler.SaveSpiel(p1[j]); } } // suche Spiele die SuchStr in MannB haben List <TSpiele> p2 = (from s in s1 where s.IstMannB == suchstr select s).ToList(); if (p2.Any()) { for (int j = 0; j < p2.Count; j++) { p2[j].IstMannB = e[i].Mannschaft; p2[j].Status = p2[j].Status + 1; ClsTurnierControler.SaveSpiel(p2[j]); } } // suche Tabelleneinträge der folgerunde und ersetzte Mannschftsnamen List <TTabellen> tab = ClsTurnierControler.Tabellen(ClsGlobal.Instance.TurnierID); TTabellen gefunden = (from x in tab where x.Mannschaft == suchstr select x).FirstOrDefault(); if (gefunden != null) { gefunden.Mannschaft = e[i].Mannschaft; ClsTurnierControler.SaveTabellen(gefunden); } } } ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); } } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); } }
/// <summary> /// Übernimmt nächstes Spiel als aktuelles Spiel /// </summary> /// <param name="letzesBeenden"></param> /// <param name="beidenichts"></param> public static void NextGame(bool letzesBeenden = true, bool beidenichts = false) { try { bool rundenwechsel = false; // letztes spiel beenden if (ClsGlobal.Instance.AktivesSpiel != null && letzesBeenden == true) { int ret = 0; ret = Spiel_beenden(ClsGlobal.Instance.AktivesSpiel, beidenichts); if (ret == 0) { return; } rundenwechsel |= ret == 2; } // Anzeige löschen ClsGlobal.Instance.AktivesSpiel = null; ClsDBVariablen.Instance.SetTextVariableWert("S05", "0"); // Tore1 ClsDBVariablen.Instance.SetTextVariableWert("S06", "0"); // Tore2 ClsDBVariablen.Instance.SetTextVariableWert("S09", "1"); // Spielabschnitt SetManName("A", ""); SetManName("B", ""); ClsDBVariablen.Instance.SetTextVariableWert("S05", "0"); // Tore1 ClsDBVariablen.Instance.SetTextVariableWert("S06", "0"); // Tore2 if (ClsGlobal.Instance.NextSpiel == null) { if (rundenwechsel == true) { SetNext(FindNext(0, ClsGlobal.Instance.TurnierID)); } else { return; } } else { // neues Spiel als aktives Spiel setzten ClsGlobal.Instance.AktivesSpiel = ClsGlobal.Instance.NextSpiel; // Anzeige setzten SetManName("A", ClsGlobal.Instance.AktivesSpiel.IstMannA); SetManName("B", ClsGlobal.Instance.AktivesSpiel.IstMannB); ////CtrlSpielInfo1.Spiel = myaktivesSpiel; if (ClsGlobal.Instance.AktivesSpiel.ToreA != 0 || ClsGlobal.Instance.AktivesSpiel.ToreB != 0) { ClsMessage.SendMessage("Das Spiel war schon einma aktiv.\nDie bereits erziehlten Tore werden übernommen.", "Achtung..."); ////ClsTranslateControls.ShowMessage("M0015", "Achtung", new object[] { "\n" }, MessageBoxButtons.OK); ClsDBVariablen.Instance.SetTextVariableWert("S05", ClsGlobal.Instance.AktivesSpiel.ToreA.ToString()); // Tore1 ClsDBVariablen.Instance.SetTextVariableWert("S06", ClsGlobal.Instance.AktivesSpiel.ToreB.ToString()); // Tore2 } ClsDBVariablen.Instance.SetTextVariableWert("S05", ClsGlobal.Instance.AktivesSpiel.ToreA.ToString()); // Tore1 ClsDBVariablen.Instance.SetTextVariableWert("S06", ClsGlobal.Instance.AktivesSpiel.ToreA.ToString()); // Tore2 ClsDBVariablen.Instance.SetTextVariableWert("S15", ClsGlobal.Instance.AktivesSpiel.IstMannA + " : " + ClsGlobal.Instance.AktivesSpiel.IstMannB); // Begegnung if (ClsGlobal.Instance.AktivesSpiel.SPlatz != 0) { ClsDBVariablen.Instance.SetTextVariableWert("S20", "Spiel um Platz: " + ClsGlobal.Instance.AktivesSpiel.SPlatz.ToString()); // Spieleinfo } // Nextebegegnung setzen if (rundenwechsel == false) { // naechstes Spiel SetNext(FindNext(1, ClsGlobal.Instance.TurnierID)); // wenn spiele nicht beendet werden, würde next = aktiv werden if (ClsGlobal.Instance.NextSpiel != null) { if (ClsGlobal.Instance.NextSpiel.Spiel == ClsGlobal.Instance.AktivesSpiel.Spiel) { SetNext(FindNext(2, ClsGlobal.Instance.TurnierID)); } } // an ende einer Rund würde next = null werden // dann müssen die nicht beendeten spiele dran kommen if (ClsGlobal.Instance.NextSpiel == null) { SetNext(FindNext(0, (int)ClsGlobal.Instance.TurnierID)); if (ClsGlobal.Instance.NextSpiel.Spiel == ClsGlobal.Instance.AktivesSpiel.Spiel) { SetNext(null); } } } else { SetNext(FindNext(0, (int)ClsGlobal.Instance.TurnierID)); } ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json((int)ClsGlobal.Instance.TurnierID)); } } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); } }
/// <summary> /// Spielendebehandlung /// </summary> /// <param name="spiel"></param> /// <param name="beidenichts"></param> /// <returns></returns> public static int Spiel_beenden(TSpiele spiel, bool beidenichts = false) { try { bool rundenwechsel = false; if (beidenichts == false) { // wenn nur 2 Mannschaften in Gruppe dann Unentschieden nicht erlaubt List <TSpiele> sl1 = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID); int anzGrMan = (from TSpiele tee in sl1 where tee.Gruppe == spiel.Gruppe select tee).Count(); if (anzGrMan == 1 && spiel.ToreA == spiel.ToreB) { ClsMessage.SendMessage("In dieser Gruppe ist kein Unentschieden erlaubt.\nSpiel nicht beendet.", "Geht nicht..."); ////ClsTranslateControls.ShowMessage("M0016", "Meldung", new object[] { "\n" }, MessageBoxButtons.OK); return(0); } } // Spiel beenden if (beidenichts == false) { ClsTurnierControler.SaveSpielStatus(spiel, 3); } else { ClsTurnierControler.SaveSpielStatus(spiel, 4); } ClsDBVariablen.Instance.SetTabellenVariableWert("T02", ClsTabellenfunktionen.SpielplanToVariable_Json(ClsGlobal.Instance.TurnierID)); // Punkte vergeben if (beidenichts == false) { SpielPunkteSpeichern(ClsGlobal.Instance.TurnierID, spiel.Spiel); } // Tabelle berechnen TabCalc(ClsGlobal.Instance.TurnierID, spiel.Gruppe); // prüfen ob Spiel um platz wenn ja, platz in Tabelle eintragen TKopf tkk = ClsTurnierControler.Turnier(ClsGlobal.Instance.TurnierID); if (tkk.Platzierungstyp == "P") { if (spiel.SPlatz != 0) { if (spiel.ToreA > spiel.ToreB) { SaveTabellenplatz(spiel.Gruppe, spiel.IstMannA, spiel.SPlatz); } else if (spiel.ToreA < spiel.ToreB) { SaveTabellenplatz(spiel.Gruppe, spiel.IstMannB, spiel.SPlatz); } } if (spiel.VPlatz != 0) { if (spiel.ToreA > spiel.ToreB) { SaveTabellenplatz(spiel.Gruppe, spiel.IstMannB, spiel.VPlatz); } else if (spiel.ToreA < spiel.ToreB) { SaveTabellenplatz(spiel.Gruppe, spiel.IstMannA, spiel.VPlatz); } } } // Prüfen ob alle Spiele der Gruppe beendet sind List <TSpiele> spiele1 = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID, spiel.Gruppe); int g = (from grp in spiele1 where grp.Status < 3 select grp).Count(); if (g == 0) { // Gruppe abgeschlossen // wenn alle Spiele beendet dann Gruppe als beendet buchen ClsTurnierControler.SaveGruppenStatus(ClsGlobal.Instance.TurnierID, spiel.Gruppe, 3); // Mannschaften in folgerunden eintragen IstMannschaftenGI(spiel.Gruppe); // prüfen ob alle gruppen in Runde beendet List <TSpiele> spiele = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID, spiel.Runde); int r = (from x in spiele where x.Status < 3 select x).Count(); if (r == 0) { rundenwechsel = true; // Runde als beendet buchen ClsTurnierControler.SaveRundenStatus(ClsGlobal.Instance.TurnierID, GetActualRoundNo(ClsGlobal.Instance.TurnierID), 3); // istmanschaften bei Gruppenübergereifender Folgerunde IstMannschaftenGegenueber(spiel); // wenn Folgerunde existent if (tkk.Matrix != "AdHoc") { int rundenAnz = ClsTurnierControler.Runden(ClsGlobal.Instance.TurnierID).Count; if (spiel.Runde < rundenAnz) { int neueRunde = spiel.Runde; neueRunde += 1; ClsDBVariablen.Instance.SetTextVariableWert("S17", neueRunde.ToString()); // ClsLocalisationFunctions.Keytext("Text", "01") + " " + runde; ClsMessage.SendMessage("Runde beendet", "rundenwechsel..."); ClsTurnierControler.SaveRundenStatus(ClsGlobal.Instance.TurnierID, neueRunde, 1); } } } // prüfen ob alle Spiele in allen Runden in Turnier beendet List <TSpiele> spiele3 = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID); int ts = (from grp in spiele3 where grp.Status < 3 select grp).Count(); if (ts == 0) { ClsTurnierControler.SaveTurnierStatus(ClsGlobal.Instance.TurnierID, 3); // ClsFunktionen.fillTreeViewdetails( turniernr, tvBrowser); ClsMessage.SendMessage("Turnier beendet.", "Geschaft..."); ////ClsTranslateControls.ShowMessage("M0017", "Meldung", new object[] { "\n" }, MessageBoxButtons.OK); } } ClsDBVariablen.Instance.SetTabellenVariableWert("T01", ClsTabellenfunktionen.TabelleToVariable_Json(ClsGlobal.Instance.TurnierID)); if (rundenwechsel == true) { return(2); } return(1); } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); return(0); } }