Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// aktuelle Runde ermitteln
        /// </summary>
        /// <param name="turnierID"></param>
        /// <returns></returns>
        private static int GetActualRoundNo(int turnierID)
        {
            List <TRunden> runden = ClsTurnierControler.Runden(turnierID);
            int            runde  = (from r in runden
                                     where r.status == 1
                                     select r.Runde).FirstOrDefault();

            return(runde);
        }
        private static ClsTurnier LoadFromDB(int TurnierID)
        {
            ClsTurnier Turnier = new ClsTurnier();

            Turnier.TKopf       = ClsTurnierControler.Turnier(TurnierID);
            Turnier.TRunden     = ClsTurnierControler.Runden(TurnierID);
            Turnier.TGruppen    = ClsTurnierControler.Gruppen(TurnierID);
            Turnier.TSpiele     = ClsTurnierControler.Spiele(TurnierID);
            Turnier.TTabellen   = ClsTurnierControler.Tabellen(TurnierID);
            Turnier.TEreignisse = ClsTurnierControler.Ereignisse(TurnierID);

            return(Turnier);
        }
Exemplo n.º 4
0
        public static void TurnierSpeichern(ClsTurnier Turnier)
        {
            try
            {
                int turnierID = ClsTurnierControler.AddTurnierKopf(Turnier.Kopf);

                for (int i = 0; i < Turnier.Runden.Count; i++)
                {
                    TRunden t = Turnier.Runden[i];
                    t.TurnierID = turnierID;
                    if (t.Runde == 1)
                    {
                        t.status = 1;
                    }
                    ClsTurnierControler.AddRunden(t);
                }

                for (int i = 0; i < Turnier.Tabellen.Count; i++)
                {
                    TTabellen et = Turnier.Tabellen[i];
                    et.TurnierID = turnierID;
                    ClsTurnierControler.AddTabellen(et);
                }

                for (int i = 0; i < Turnier.Spiele.Count; i++)
                {
                    TSpiele er = Turnier.Spiele[i];
                    er.TurnierID = turnierID;
                    er.Datum     = "";
                    er.Uhrzeit   = "";
                    ClsTurnierControler.AddSpiele(er);
                }

                List <string> grp = (from x in Turnier.Tabellen select x.Gruppe).Distinct().ToList();
                for (int i = 0; i < grp.Count; i++)
                {
                    TGruppen gr = new TGruppen();
                    gr.TurnierID = turnierID;
                    gr.TurnierNr = 0;
                    gr.Gruppe    = grp[i];
                    gr.status    = 0;
                    gr.Runde     = Convert.ToInt32(grp[i].Substring(0, grp[i].Length - 1));
                    ClsTurnierControler.AddGruppen(gr);
                }
            }
            catch (Exception ex)
            {
                ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
        private static void SaveToDB(ClsTurnier Turnier)
        {
            int TurnierID = ClsTurnierControler.AddTurnierKopf(Turnier.TKopf);

            if (Turnier.TRunden.Any())
            {
                for (int i = 0; i < Turnier.TRunden.Count; i++)
                {
                    Turnier.TRunden[i].TurnierID = TurnierID;
                    ClsTurnierControler.AddRunden(Turnier.TRunden[i]);
                }
            }

            if (Turnier.TGruppen.Any())
            {
                for (int i = 0; i < Turnier.TGruppen.Count; i++)
                {
                    Turnier.TGruppen[i].TurnierID = TurnierID;
                    ClsTurnierControler.AddGruppen(Turnier.TGruppen[i]);
                }
            }

            if (Turnier.TSpiele.Any())
            {
                for (int i = 0; i < Turnier.TSpiele.Count; i++)
                {
                    Turnier.TSpiele[i].TurnierID = TurnierID;
                    ClsTurnierControler.AddSpiele(Turnier.TSpiele[i]);
                }
            }

            if (Turnier.TTabellen.Any())
            {
                for (int i = 0; i < Turnier.TTabellen.Count; i++)
                {
                    Turnier.TTabellen[i].TurnierID = TurnierID;
                    ClsTurnierControler.AddTabellen(Turnier.TTabellen[i]);
                }
            }

            if (Turnier.TEreignisse.Any())
            {
                for (int i = 0; i < Turnier.TEreignisse.Count; i++)
                {
                    Turnier.TEreignisse[i].TurnierID = TurnierID;
                    ClsTurnierControler.AddEreignis(Turnier.TEreignisse[i]);
                }
            }
        }
Exemplo n.º 6
0
        private void LoadSpieleToTE()
        {
            try
            {
                List <TSpiele> tee = ClsTurnierControler.Spiele(ClsGlobal.Instance.TurnierID);

                if (!tee.Any())
                {
                    return;
                }
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
Exemplo n.º 7
0
 public static void TurnierLoeschen(int TurnierID)
 {
     try
     {
         ClsTurnierControler.DelTabellen(TurnierID);
         ClsTurnierControler.DelSpiele(TurnierID);
         ClsTurnierControler.DelGruppen(TurnierID);
         ClsTurnierControler.DelRunden(TurnierID);
         ClsEreignisControler.DelEreignisse(TurnierID);
         ClsTurnierControler.DelTurnierKopf(TurnierID);
     }
     catch (Exception ex)
     {
         ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
     }
 }
Exemplo n.º 8
0
        private static void SaveTabellenplatz(string Gruppe, string mannschaft, int platz)
        {
            try
            {
                List <TTabellen> e1 = ClsTurnierControler.Tabellen(ClsGlobal.Instance.TurnierID, Gruppe);
                TTabellen        e  = (from t in e1
                                       where t.Mannschaft == mannschaft
                                       select t).FirstOrDefault();

                e.fixPlatz = platz;
                ClsTurnierControler.SaveTabellen(e);
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
Exemplo n.º 9
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());
            }
        }
Exemplo n.º 10
0
        /// <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);
            }
        }
        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);
            }
        }
Exemplo n.º 12
0
        public static void TorschuetzeToVariable(int turnierID)
        {
            try
            {
                bool kname = Convert.ToBoolean(ClsOptionsControler.Options3("kurznamen").Value);

                // Create a DataTable for buildup
                DataTable tempTable = new DataTable();

                // Spalte je Anzeigespalte erstellen
                List <Anzeigetabelle> cols1 = ClsOptionsControler.Anzeigetabelle("T06", "std");
                List <Anzeigetabelle> cols  = (from x in cols1 where x.Sichtbar == 1 select x).ToList();

                string[] spalten = new string[cols.Count];
                if (cols.Any())
                {
                    for (int i = 0; i < cols.Count; i++)
                    {
                        spalten[i] = cols[i].DBFeld;
                    }
                }

                // Tabelle lesen
                List <ClsTorschuetze> tab = ClsTurnierControler.TorschuetzenList(turnierID);

                // Werte übersetzen
                if (tab.Any())
                {
                    for (int i = 0; i < tab.Count; i++)
                    {
                        if (kname)
                        {
                            tab[i].Mannschaft = Kurzname(tab[i].Mannschaft);
                        }
                    }
                }

                // Mache aus List ein Datatable
                using (var reader = FastMember.ObjectReader.Create(tab, spalten))
                {
                    tempTable.Load(reader);
                }

                // Spalten übersetzen
                for (int i = 0; i < tempTable.Columns.Count; i++)
                {
                    // Anzeigename
                    string text = (from x in cols where x.DBFeld == tempTable.Columns[i].ColumnName select x.Anzeigename).FirstOrDefault();
                    if (string.IsNullOrEmpty(text))
                    {
                        //text = ClsLocalisationFunctions.Tabellenfeld("Torschuetzen", tempTable.Columns[i].ColumnName);
                        text = ClsTextControler.TextByNameAndNumber("Torschuetzen", tempTable.Columns[i].ColumnName);
                    }

                    if (!string.IsNullOrEmpty(text))
                    {
                        tempTable.Columns[i].ColumnName = text;
                    }
                }

                ClsDBVariablen.Instance.SetTabellenVariableWert("T06", ConvertDatatabletoString(tempTable));

                // return tempTable;

                // tempTable.Dispose();
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
Exemplo n.º 13
0
        private static void TabCalc(int turnierID, string gruppe)
        {
            try
            {
                // Tabellenupdate
                List <TTabellen> mannschaften = ClsTurnierControler.Tabellen(turnierID, gruppe);
                if (mannschaften.Any())
                {
                    List <TTabellen> unsorted1 = Settablevalues(turnierID, gruppe, mannschaften);
                    for (int i = 0; i < unsorted1.Count; i++)
                    {
                        unsorted1[i].Direkterpunktvergleich       = unsorted1.Count;
                        unsorted1[i].Direktererweitertervergleich = unsorted1.Count;
                        ClsTurnierControler.SaveTabellen(unsorted1[i]);
                    }

                    // Dierektervergleich
                    // ermittel ob es gleiche punktanzahl gibt
                    List <int> test = unsorted1.GroupBy(x => x.Punkte).Select(y => y.Key).ToList();

                    // alle pläzte duchgehen und prüfen ob es noch weitere Plaetze mit gleicher punktzahl gibt
                    for (int i = 0; i < test.Count; i++)
                    {
                        List <TTabellen> newlist = ClsTurnierControler.Tabellen(turnierID, gruppe);
                        List <TTabellen> dist    = (from x in newlist where x.Punkte == test[i] select x).ToList();
                        if (dist.Count > 1)
                        {
                            // nur über Punkte ausrechnen
                            List <TTabellen> unsorted = new List <TTabellen>(Settablevalues(turnierID, gruppe, dist).ToList());
                            List <TTabellen> sorted   = unsorted.OrderByDescending(x => x.Punkte).ToList();
                            for (int p = 0; p < sorted.Count; p += 1)
                            {
                                TTabellen row = sorted[p];
                                ClsTurnierControler.SaveTabellenDVP(row, p);
                            }

                            // über Punkte und Tore ausrechnen
                            sorted = unsorted.OrderByDescending(x => x.Punkte).ThenByDescending(y => y.Tore).ThenBy(z => z.Gegentore).ToList();
                            for (int p = 0; p < sorted.Count; p += 1)
                            {
                                TTabellen row = sorted[p];
                                ClsTurnierControler.SaveTabellenDVPV(row, p);
                            }
                        }
                    }
                }

                // Gruppenplaetze eintragen
                List <TTabellen> tabelle = ClsTurnierControler.Tabellen(turnierID, gruppe);

                if (tabelle.Any())
                {
                    // Nach Vorgaben sortieren
                    List <TTabellen> sortedtabelle = ClsFunktionen.STTabellem(tabelle);

                    // Plaetze eintragen
                    int platz = 1;
                    for (int i = 0; i < sortedtabelle.Count; i++)
                    {
                        if (sortedtabelle[i] != null)
                        {
                            sortedtabelle[i].Platz = platz;
                            ClsTurnierControler.SaveTabellen(sortedtabelle[i]);
                            platz += 1;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
Exemplo n.º 14
0
        private static List <TTabellen> Settablevalues(int turnierID, string gruppe, List <TTabellen> mannschaften)
        {
            try
            {
                List <string> mannamen = mannschaften.Select(x => x.Mannschaft).ToList();

                // Tabellenupdate
                if (mannschaften.Any())
                {
                    for (int i = 0; i < mannschaften.Count; i++)
                    {
                        // Spiele lesen
                        List <TSpiele> spiele1 = ClsTurnierControler.Spiele(turnierID, gruppe);
                        List <TSpiele> spiele  = (from e in spiele1
                                                  where (e.IstMannA == mannschaften[i].Mannschaft && mannamen.Contains(e.IstMannB))
                                                  ||
                                                  (e.IstMannB == mannschaften[i].Mannschaft && mannamen.Contains(e.IstMannA))
                                                  select e).ToList();

                        // Spiele Auswerten
                        int punkte =
                            (from TSpiele e in spiele
                             where e.IstMannA == mannschaften[i].Mannschaft
                             select e.PunkteA).Sum()
                            +
                            (from TSpiele e in spiele
                             where e.IstMannB == mannschaften[i].Mannschaft
                             select e.PunkteB).Sum();

                        int tore =
                            (from TSpiele e in spiele
                             where e.IstMannA == mannschaften[i].Mannschaft
                             select e.ToreA).Sum()
                            +
                            (from TSpiele e in spiele
                             where e.IstMannB == mannschaften[i].Mannschaft
                             select e.ToreB).Sum();

                        int gegentore =
                            (from TSpiele e in spiele
                             where e.IstMannA == mannschaften[i].Mannschaft
                             select e.ToreB).Sum()
                            +
                            (from TSpiele e in spiele
                             where e.IstMannB == mannschaften[i].Mannschaft
                             select e.ToreA).Sum();

                        int spielanz =
                            (from TSpiele e in spiele
                             where e.IstMannA == mannschaften[i].Mannschaft &&
                             e.Status == 3
                             select e).Count()
                            +
                            (from TSpiele e in spiele
                             where e.IstMannB == mannschaften[i].Mannschaft &&
                             e.Status == 3
                             select e).Count();

                        // gegentore wenn beide nicht da
                        int anz = (from e in spiele1
                                   where (e.IstMannA == mannschaften[i].Mannschaft && e.Status == 4)
                                   ||
                                   (e.IstMannB == mannschaften[i].Mannschaft && e.Status == 4)
                                   select e).Count();
                        gegentore += (anz * 5);

                        mannschaften[i].Punkte         = punkte;
                        mannschaften[i].Tore           = tore;
                        mannschaften[i].Gegentore      = gegentore;
                        mannschaften[i].Spiele         = spielanz;
                        mannschaften[i].Torverhaeltnis = tore - gegentore;
                    }
                }

                return(mannschaften);
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
                return(new List <TTabellen>());
            }
        }
Exemplo n.º 15
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);
            }
        }
Exemplo n.º 16
0
        public static string SpielplanToVariable_Json(int turnierID)
        {
            try
            {
                bool kname = Convert.ToBoolean(ClsOptionsControler.Options3("kurznamen").Value);

                string Runde  = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T02" && x.Field == "Runde").Value;
                string Gruppe = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T02" && x.Field == "Gruppe").Value;
                string Status = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T02" && x.Field == "Status").Value;
                string Datum  = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T02" && x.Field == "Datum").Value;

                if (string.IsNullOrEmpty(Runde))
                {
                    Runde = "0";
                }

                int runde = Convert.ToInt32(Runde);

                // Create a DataTable for buildup
                DataTable tempTable = new DataTable();

                // Spalte je Anzeigespalte esretllen (Überschriften)
                List <Anzeigetabelle> cols1 = ClsOptionsControler.Anzeigetabelle("T02", "std");
                List <Anzeigetabelle> cols  = (from x in cols1 where x.Sichtbar == 1 select x).ToList();

                string[] spalten = new string[cols.Count + 1];
                if (cols.Any())
                {
                    spalten[0] = "ID";
                    for (int i = 0; i < cols.Count; i++)
                    {
                        spalten[i + 1] = cols[i].DBFeld;
                    }
                }

                // Zeilen Hinzufügen
                // Tabelle lesen
                List <TSpiele> tab = ClsTurnierControler.Spiele(turnierID);

                // Daten filtern
                if (Runde != "0")
                {
                    tab = (from t in tab
                           where t.Runde == runde
                           select t).ToList();
                }

                if (!string.IsNullOrEmpty(Gruppe))
                {
                    tab = (from t in tab
                           where t.Gruppe == Gruppe
                           select t).ToList();
                }

                if (!string.IsNullOrEmpty(Status))
                {
                    tab = (from t in tab
                           where t.Status == Convert.ToInt32(Status)
                           select t).ToList();
                }

                if (!string.IsNullOrEmpty(Datum))
                {
                    tab = (from t in tab
                           //where t.Datum == Convert.ToDateTime(ClsGlobal.Instance.FilterS.Date)
                           where t.Datum == Datum
                           select t).ToList();
                }

                // Daten sortieren
                tab = (from ot in tab
                       orderby ot.Spiel
                       select ot).ToList();

                // Werte übersetzen
                if (tab.Any())
                {
                    for (int i = 0; i < tab.Count; i++)
                    {
                        if (kname)
                        {
                            tab[i].IstMannA = Kurzname(tab[i].IstMannA);
                            tab[i].IstMannB = Kurzname(tab[i].IstMannB);
                        }
                    }
                }

                // Mache aus List ein Datatable
                using (var reader = FastMember.ObjectReader.Create(tab, spalten))
                {
                    tempTable.Load(reader);
                }

                // Spalten übersetzen
                for (int i = 0; i < tempTable.Columns.Count; i++)
                {
                    // Anzeigename
                    string text = (from x in cols where x.DBFeld == tempTable.Columns[i].ColumnName select x.Anzeigename).FirstOrDefault();
                    if (string.IsNullOrEmpty(text))
                    {
                        //text = ClsLocalisationFunctions.Tabellenfeld("Spielplan", tempTable.Columns[i].ColumnName);
                        text = ClsTextControler.TextByNameAndNumber("Spielplan", tempTable.Columns[i].ColumnName);
                    }

                    if (!string.IsNullOrEmpty(text))
                    {
                        tempTable.Columns[i].ColumnName = text;
                    }
                }

                return(ConvertDatatabletoString(tempTable));
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
                return(null);
            }
        }
Exemplo n.º 17
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);
            }
        }
Exemplo n.º 18
0
        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);
            }
        }
Exemplo n.º 19
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);
            }
        }
Exemplo n.º 20
0
        public static string TabelleToVariable_Json(int turnierID)
        {
            try
            {
                ClsTabellenVariabeln tv = ClsDBVariablen.Instance.GetTabellenVariable("T01");

                bool kname = Convert.ToBoolean(ClsOptionsControler.Options3("kurznamen").Value);

                string Runde  = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T01" && x.Field == "Runde").Value;
                string Gruppe = ClsGlobal.Instance.TableFilterList.Find(x => x.Table == "T01" && x.Field == "Gruppe").Value;

                if (string.IsNullOrEmpty(Runde))
                {
                    Runde = "0";
                }

                int runde = Convert.ToInt32(Runde);

                // Create a DataTable for buildup
                DataTable tempTable = new DataTable();

                // Spalte je Anzeigespalte erstellen
                List <Anzeigetabelle> cols1 = ClsOptionsControler.Anzeigetabelle("T01", "std");
                List <Anzeigetabelle> cols  = (from x in cols1 where x.Sichtbar == 1 select x).ToList();

                string[] spalten = new string[cols.Count + 1];
                if (cols.Any())
                {
                    spalten[0] = "ID";
                    for (int i = 0; i < cols.Count; i++)
                    {
                        spalten[i + 1] = cols[i].DBFeld;
                    }
                }

                // Tabelle lesen
                List <TTabellen> tab = ClsTurnierControler.Tabellen(turnierID);

                // Daten filtern
                if (Runde != "0")
                {
                    tab = (from t in tab
                           where t.Runde == runde
                           select t).ToList();
                }

                if (!string.IsNullOrEmpty(Gruppe))
                {
                    tab = (from t in tab
                           where t.Gruppe == Gruppe
                           select t).ToList();
                }

                // Daten sortieren
                tab = (from t in tab
                       orderby t.Runde, t.Gruppe, t.Platz
                       select t).ToList();

                //// Seite berechnen
                int recPerPage = tv.RecPerPage;
                int skip       = calacSkipRecords("T02", recPerPage, (decimal)tab.Count());

                // tabseite
                tab = (from t in tab select t).Skip(skip).Take(recPerPage).ToList();

                // Werte übersetzen
                if (tab.Any())
                {
                    for (int i = 0; i < tab.Count; i++)
                    {
                        if (kname)
                        {
                            tab[i].Mannschaft = Kurzname(tab[i].Mannschaft);
                        }
                    }
                }

                // Mache aus List ein Datatable
                using (var reader = FastMember.ObjectReader.Create(tab, spalten))
                {
                    tempTable.Load(reader);
                }

                // Spalten übersetzen
                for (int i = 0; i < tempTable.Columns.Count; i++)
                {
                    // Anzeigename
                    string text = (from x in cols where x.DBFeld == tempTable.Columns[i].ColumnName select x.Anzeigename).FirstOrDefault();
                    if (string.IsNullOrEmpty(text))
                    {
                        //text = ClsLocalisationFunctions.Tabellenfeld("Tabelle", tempTable.Columns[i].ColumnName);
                        text = ClsTextControler.TextByNameAndNumber("Tabelle", tempTable.Columns[i].ColumnName);
                    }

                    if (!string.IsNullOrEmpty(text))
                    {
                        tempTable.Columns[i].ColumnName = text;
                    }
                }

                return(ConvertDatatabletoString(tempTable));

                // tempTable.Dispose();
            }
            catch (Exception ex)
            {
                ClsError.Error(Name, MethodBase.GetCurrentMethod().ToString(), ex);
                return(null);
            }
        }
Exemplo n.º 21
0
 /// <summary>
 /// Gibt das TSpiele-Objekt zurück für die SpielNr innerhalb des Turnieres. (SpielNR is nicht gleich SpielID)
 /// </summary>
 /// <param name="SpielNr"></param>
 /// <returns></returns>
 public static TSpiele MatchByNr(int SpielNr)
 {
     return(ClsTurnierControler.Spiel(ClsGlobal.Instance.TurnierID, SpielNr));
 }