/// <summary> /// Metoda, ktora vrati vysledok na zaklade posledneho odbehnuteho kola /// </summary> /// <param name="highestFinishedRound">posledne/najvyssie odbehnute kolo</param> /// <returns>vysledok</returns> public Result GetResult(FinishedRound highestFinishedRound) { Result result = new Result { LastFinishedRound = highestFinishedRound.FinishedRoundNumber, RacerNumber = highestFinishedRound.RacerNumber, RacerName = highestFinishedRound.RacerName, ResultTime = highestFinishedRound.FinishedRoundTime - RaceStartTime }; return(result); }
/// <summary> /// Metoda, ktora vrati info, ci pretekar odbehol uz vyssie kolo /// </summary> /// <param name="finishedRound">odbehnute kolo</param> /// <returns>true alebo false</returns> public bool HasRacerFinishedHigherRound(FinishedRound finishedRound) { Result result = Results.FirstOrDefault(r => r.RacerNumber == finishedRound.RacerNumber); if (result == null) { return(false); } else { return(true); } }
/// <summary> /// Metoda, ktora zaznamena odbehnute kolo /// </summary> /// <param name="racerNumber">startovacie cislo pretekara</param> public void RegisterFinishedRound(int racerNumber, RacerRepository racerRepository) { FinishedRound finishedRound = new FinishedRound(); finishedRound.FinishedRoundTime = DateTime.Now; int lastFinishedRoundNumber = GetHighestRacersFinishedRound(racerNumber); finishedRound.FinishedRoundNumber = ++lastFinishedRoundNumber; finishedRound.RacerNumber = racerNumber; finishedRound.RacerName = GetRacerNameByStartNumber(racerNumber, racerRepository); finishedRound.RoundTime = finishedRound.FinishedRoundTime - RaceStartTime; FinishedRounds.Add(finishedRound); RefreshResults(); }