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