/// <summary> /// Erstellt das Match und gibt es an das Punktesystem weiter. /// </summary> /// <param name="HeimTeilnehmer"></param> /// <param name="GastTeilnehmer"></param> /// <param name="Heimtore"></param> /// <param name="Gasttore"></param> /// <param name="IsVerlaengerung"></param> public void OnMatchSave(Teilnehmer HeimTeilnehmer, Teilnehmer GastTeilnehmer, int Heimtore, int Gasttore, bool IsVerlaengerung) { Match Match = new Match(HeimTeilnehmer, Heimtore, GastTeilnehmer, Gasttore, IsVerlaengerung); Punktesystem.MatchPunkteVerteilen(Match); InvokePropertyChanged("MatchSaved"); }
public Match(Teilnehmer teilnehmer1, int punkte1, Teilnehmer teilnehmer2, int punkte2, bool isVerlaengerung) { this.Teilnehmer1 = teilnehmer1; this.Teilnehmer2 = teilnehmer2; this.Punkte1 = punkte1; this.Punkte2 = punkte2; this.IsVerlaengerung = isVerlaengerung; }
/// <summary> /// Ermittelt den Sieger und Verlierer für die Masterfunktion /// </summary> /// <param name="Value">Match, welches ausgewertet wird.</param> private void SetSiegerVerlierer(Match Value) { if (Value.Punkte1 == Value.Punkte2) { return; } else if (Value.Punkte1 > Value.Punkte2) { Sieger = Value.Teilnehmer1; Verlierer = Value.Teilnehmer2; } else { Sieger = Value.Teilnehmer2; Verlierer = Value.Teilnehmer1; } }
/// <summary> /// Masterfunktion, welche die Punkte an die Teams des Matches verteilt. /// </summary> /// <param name="Value">Match, welches auszuwerten ist.</param> public void MatchPunkteVerteilen(Match Value) { Sieger = null; Verlierer = null; SetSiegerVerlierer(Value); SetTordifferenz(Value); if (Value.IsVerlaengerung) { Sieger.Punkte += PUNKTE_SIEG_NACHSPIEL; Verlierer.Punkte += PUNKTE_VERLOREN_NACHSPIEL; } else if (Sieger == null || Verlierer == null) { return; } else { Sieger.Punkte += PUNKTE_SIEG; Verlierer.Punkte += PUNKTE_VERLOREN; } }
/// <summary> /// Sortiert die Liste im Teilnehmerproperty nach Punkten absteigend, für die Zuschauerübersicht. /// </summary> /// <returns>Sortierte Liste</returns> public List <Teilnehmer> GetTeilnehmerSortiert() { List <Teilnehmer> SortedList = Teilnehmer.OrderByDescending(o => o.Punkte).ThenByDescending(o => o.ToreErzielt - o.ToreErhalten).ThenByDescending(o => o.ToreErzielt).ToList(); return(SortedList); }