public static void SaveTKopf(TKopf TurnierKopf) { try { TKopf l; using (fsbDB FSBDB = new fsbDB()) { l = (from x in FSBDB.TKopf where x.ID == TurnierKopf.ID select x).FirstOrDefault(); foreach (PropertyInfo pi in TurnierKopf.GetType().GetProperties()) { if (pi.CanWrite) { pi.SetValue(l, pi.GetValue(TurnierKopf, null), null); } } FSBDB.SaveChanges(); } } catch (Exception ex) { ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex); } }
/// <summary> /// findet das nächste Spiel /// </summary> /// <param name="pos"></param> /// <param name="turnierID"></param> /// <returns></returns> public static TSpiele FindNext(int pos, int turnierID) { try { TKopf turnierk = ClsTurnierControler.Turnier(turnierID); if (turnierk.status == 3) { return(null); } List <TSpiele> spiele1; if (turnierk.Matrix != "AdHoc") { spiele1 = ClsTurnierControler.Spiele(turnierID, GetActualRoundNo(turnierID)); } else { spiele1 = ClsTurnierControler.Spiele(turnierID); } List <TSpiele> spiele2 = (from x in spiele1 where x.Status == 2 select x).ToList(); if (!spiele2.Any()) { // MessageBox.Show("Es ist kein Spiel mehr offen.", "Meldung..."); ////ClsTranslateControls.ShowMessage("M0018", "Meldung", new object[] { "\n" }, MessageBoxButtons.OK); return(null); } if (pos >= spiele2.Count) { return(null); } else { return(spiele2[pos]); } } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); return(new TSpiele()); } }
public static int AddTurnierKopf(TKopf turnier) { try { using (fsbDB FSBDB = new fsbDB()) { long newID = (from x in FSBDB.TKopf select x.ID).DefaultIfEmpty(0).Max() + 1; turnier.ID = newID; FSBDB.TKopf.Add(turnier); FSBDB.SaveChanges(); return((int)turnier.ID); } } catch (Exception ex) { ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex); return(0); } }
/// <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); } }
public static int LoadTurnier(int turnierID) { try { TKopf k = ClsTurnierControler.Turnier(turnierID); if (k == null) { k = new TKopf(); k.TurnierNr = 0; } ClsDBVariablen.Instance.SetTextVariableWert("S13", k.TurnierNr.ToString()); if (turnierID == 0) { // Turniername auf "freies Spielen" setzen ClsDBVariablen.Instance.SetTextVariableWert("S14", "freies Spielen"); // Spiel 0 initialisieren SetSpiel0(); // Spiel next initialisieren TSpiele nextspiel = null; ClsGlobal.Instance.NextSpiel = nextspiel; ClsDBVariablen.Instance.SetTextVariableWert("S16", ""); ClsDBVariablen.Instance.SetTextVariableWert("S48", "0"); // Runde_next ClsDBVariablen.Instance.SetTextVariableWert("S49", "0"); // Gruppe_next ClsDBVariablen.Instance.SetTextVariableWert("S50", "0"); // Spiel_next // Spielabschnitt auf 1 setzten ClsSpielAbschnittControler.Instance.Spielabschnitt = 1; // Zeiten initialisieren ClsZeitkontroler.Instance.ResetAlleUhren(); // Tabellenvariablen füllen Turnierwechsel(turnierID); return(0); } // prüfen ob turnier bereits beendet if (k.status == 3) { // MessageBox.Show("Turnier ist bereits beendet und kann nicht geladen werden.", "Meldung..."); ////ClsTranslateControls.ShowMessage("M0014", "Meldung", new object[] { "\n" }, MessageBoxButtons.OK); ClsDBVariablen.Instance.SetTextVariableWert("S48", ""); // Runde_next ClsDBVariablen.Instance.SetTextVariableWert("S49", ""); // Gruppe_next ClsDBVariablen.Instance.SetTextVariableWert("S50", ""); // Spiel_next } // neues Turnier laden // tk - TurnierKopf TKopf tkk = ClsTurnierControler.Turnier(turnierID); if (tkk != null) { // tk.Add(tkk); ClsDBVariablen.Instance.SetTextVariableWert("S14", tkk.Beschreibung); } // aktuelle Runde ermitteln List <TRunden> runden = ClsTurnierControler.Runden(turnierID); int runde = (from r in runden where r.TurnierID == ClsGlobal.Instance.TurnierID && r.status == 1 select r.Runde).FirstOrDefault(); // Naechste Begegnungen ClsSpielfunktionen.SetNext(ClsSpielfunktionen.FindNext(0, turnierID)); // aktives spiel auf null setzen ClsGlobal.Instance.AktivesSpiel = null; // Tabellenvariablen füllen Turnierwechsel(turnierID); return(0); } catch (Exception ex) { ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex); return(0); } }