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); } }