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);
            }
        }
Exemple #2
0
        /// <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);
     }
 }
Exemple #4
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);
            }
        }