public static void SaveTabellen(TTabellen tabelle)
        {
            try
            {
                TTabellen l;

                using (fsbDB FSBDB = new fsbDB())
                {
                    l = (from x in FSBDB.TTabellen
                         where x.ID == tabelle.ID
                         select x).FirstOrDefault();

                    foreach (PropertyInfo pi in tabelle.GetType().GetProperties())
                    {
                        if (pi.CanWrite)
                        {
                            pi.SetValue(l, pi.GetValue(tabelle, null), null);
                        }
                    }

                    FSBDB.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
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);
            }
        }
        //public static void AddEreignisse(TEreignisse ereigniss)
        //{
        //    try
        //    {
        //        using (fsbDB FSBDB = new fsbDB())
        //        {
        //            FSBDB.TEreignisse.Add(ereigniss);
        //            FSBDB.SaveChanges();
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
        //    }
        //}

        public static void AddTabellen(TTabellen tabelleneintrag)
        {
            try
            {
                using (fsbDB FSBDB = new fsbDB())
                {
                    long newID = (from x in FSBDB.TTabellen select x.ID).DefaultIfEmpty(0).Max() + 1;
                    tabelleneintrag.ID = newID;
                    FSBDB.TTabellen.Add(tabelleneintrag);
                    FSBDB.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
        /// <summary>
        /// Speichert nur das Feld DirekterErweiterterVergleich
        /// </summary>
        /// <param name="tabelle"></param>
        /// <param name="dV"></param>
        public static void SaveTabellenDVPV(TTabellen tabelle, int dV)
        {
            try
            {
                TTabellen l;

                using (fsbDB FSBDB = new fsbDB())
                {
                    l = (from x in FSBDB.TTabellen
                         where x.ID == tabelle.ID
                         select x).FirstOrDefault();

                    l.Direktererweitertervergleich = dV;

                    FSBDB.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ClsError.CoreError(Name, MethodBase.GetCurrentMethod().ToString(), ex);
            }
        }
Esempio n. 6
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);
            }
        }
Esempio n. 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);
            }
        }
Esempio n. 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);
            }
        }