private static void SpielPunkteSpeichern(int turnierID, int spielNr) { try { TSpiele spiel = ClsTurnierControler.Spiel(turnierID, spielNr); // Feststellen wer gewinner ist und Punkte verteilen int sPunkte = Convert.ToInt32(ClsOptionsControler.Options3("Siegerpunkte").Value); int vPunkte = Convert.ToInt32(ClsOptionsControler.Options3("Verliererpunkte").Value); int uPunkte = Convert.ToInt32(ClsOptionsControler.Options3("Unentschiedenpunkte").Value); if (spiel.ToreA == spiel.ToreB) { spiel.PunkteA = uPunkte; spiel.PunkteB = uPunkte; } else if (spiel.ToreA < spiel.ToreB) { spiel.PunkteA = vPunkte; spiel.PunkteB = sPunkte; } else if (spiel.ToreA > spiel.ToreB) { spiel.PunkteA = sPunkte; spiel.PunkteB = vPunkte; } ClsTurnierControler.SaveSpiel(spiel); } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); } }
/// <summary> /// manuelles setzen von Toren und/oder beenden des Spiels /// </summary> public static void SetMatch(int SpielID, int ToreA, int ToreB, string SpielendeOpt) { TSpiele spiel = ClsTurnierControler.Spiel(SpielID); spiel.ToreA = ToreA; spiel.ToreB = ToreB; ClsTurnierControler.SaveSpiel(spiel); if (SpielendeOpt == "1") { Spiel_beenden(spiel); } if (SpielendeOpt == "2") { // nichts notwendig da Spiel offen bleiben muss } if (SpielendeOpt == "3") { Spiel_beenden(spiel, true); } }
/// <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); } }
private static void Tor_nebenereignisse(TSpiele spiel, string aoderb, int add, string mannschaft, int spielerID) { try { ClsDBVariablen.Instance.SetTextVariableWert("S12", ClsFunktionen.Setspielstand()); // spiel speichern if (spiel != null) { if (spiel.Spiel != 0) { ClsTurnierControler.SaveSpiel(ClsGlobal.Instance.AktivesSpiel); } } // prüfen ob Ereignis gespeichert werden muss string SpielzeitStr = ClsDBVariablen.Instance.GetTextVariableWert("S08"); if (ClsZeitkontroler.Instance.GetClockStatus(2)) // ClsSpielzeitControler.Instance.Nachspielzeitlaeuft) { SpielzeitStr = SpielzeitStr + "+" + ClsDBVariablen.Instance.GetTextVariableWert("S35"); } DateTime cpu = DateTime.Now; string freiSpielereignisse = ClsOptionsControler.Options3("Spielfreieereignisse").Value; string Spielername = ""; if (spielerID != 0) { Spieler spieler = ClsMannschaftenControler.Spieler(spielerID); Spielername = spieler.Nachname + ", " + spieler.Vorname; } if (spiel.Spiel != 0 || (spiel.Spiel == 0 && freiSpielereignisse == "True")) { TEreignisse e = new TEreignisse { TurnierID = spiel.TurnierID, TurnierNr = spiel.TurnierNr, Spiel = spiel.Spiel, Mannschaft = mannschaft, Spieler = Spielername, Spielzeit = SpielzeitStr, Spielzeitrichtung = ClsTimerControler.Timer(ClsTimerControler.TimerID(1)).Countdown.ToString(), //ClsOptionsControler.Options3("Spielzeitrichtung").Value, CPUZeit = DateTime.Now, Ereignistyp = "05" }; ClsEreignisControler.AddEreignis(e); } // update der Ereignistabelle ClsDBVariablen.Instance.SetTabellenVariableWert("T03", ClsTabellenfunktionen.EreignisseToVariable_Json(ClsGlobal.Instance.TurnierID)); // update der Torschützentabelle ClsTabellenfunktionen.TorschuetzeToVariable(ClsGlobal.Instance.TurnierID); // einstellen des Torschützen als aktive gewählten Spieler ClsDBVariablen.Instance.SetTextVariableWert("S38", spielerID.ToString()); // prüfen ob ein Torton abgespielt werden soll if (add > 0) { string torton = string.Empty; if (ClsOptionsControler.Options3("individualTorsound").Value != "True") { torton = ClsOptionsControler.Options3("Tor").Value; } else { DB.Mannschaften m = new DB.Mannschaften(); if (aoderb == "A") { m = ClsMannschaftenControler.Mannschaft(spiel.IstMannA); } else { m = ClsMannschaftenControler.Mannschaft(spiel.IstMannB); } if (m != null) { torton = m.Torton; } } if (torton != string.Empty) { ClsSoundplayer.Instance.TPlay(torton + "|" + "30"); } } } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); } }