예제 #1
0
        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"))));
        }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }
예제 #5
0
        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;
            }
        }
예제 #6
0
        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));
            }
        }
예제 #7
0
        /// <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);
            }
        }
예제 #8
0
        /// <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);
            }
        }
예제 #9
0
        /// <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);
            }
        }
예제 #10
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);
            }
        }