public virtual void rankRezultati(Propozicije propozicije) { if (!propozicije.racunajObaPreskoka(DeoTakmicenjaKod)) { List <RezultatPreskok> rezultati = new List <RezultatPreskok>(Rezultati); rankByPrviPreskok(rezultati, propozicije.VecaEOcenaImaPrednost, 0); } else { List <RezultatPreskok> rezultatiObaPreskoka = new List <RezultatPreskok>(); List <RezultatPreskok> rezultatiPrviPreskok = new List <RezultatPreskok>(); foreach (RezultatPreskok r in Rezultati) { if (r.TotalObeOcene != null) { rezultatiObaPreskoka.Add(r); } else { rezultatiPrviPreskok.Add(r); } } // Ovakav nacin rangiranja rezultata (da se prvo rangiraju takmicari sa dva preskoka pa zatim sa jednim) // obezbedjuje da i u situaciji kada je u propozicijama navedeno da se preskok racuna na osnovu obe ocene, // a zatim se kod unosenja ocena unese samo prva ocena za sve takmicare, da ce i tada takmicari biti // ispravno rangirani (rezultatiObaPreskoka ce tada biti prazni) rankByObaPreskoka(rezultatiObaPreskoka, propozicije.VecaEOcenaImaPrednost); rankByPrviPreskok(rezultatiPrviPreskok, propozicije.VecaEOcenaImaPrednost, rezultatiObaPreskoka.Count); } // NOTE: Deo "!obaPreskoka && x.Total == null" obezbedjuje da se kvalifikanti racunaju na osnovu prvog skoka // u situacijama kada je u propozicijama stavljeno da se kvalifikanti racunaju na osnovu oba skoka, a u // takmicenju 1 je unesen samo prvi skok. (Inace nijedan gimnasticar ne bi bio oznacen sa Q). bool obaPreskoka = postojeObaPreskoka(); PoredakSprava.updateKvalStatus <RezultatPreskok>(propozicije, Rezultati, deoTakKod, x => !propozicije.Tak1PreskokNaOsnovuObaPreskoka && x.Total == null || propozicije.Tak1PreskokNaOsnovuObaPreskoka && (obaPreskoka && x.TotalObeOcene == null || !obaPreskoka && x.Total == null)); }
public virtual void dumpRezultati(StreamWriter streamWriter, Propozicije propozicije) { string header = DeoTakmicenjaKod == DeoTakmicenjaKod.Takmicenje1 ? "PRESKOK" : "PRESKOK - FINALE"; streamWriter.WriteLine(header); foreach (RezultatPreskok r in getRezultati()) { float?total; if (!propozicije.racunajObaPreskoka(DeoTakmicenjaKod) || r.TotalObeOcene == null) { total = r.Total; } else { total = r.TotalObeOcene; } string line = r.Rank + ". " + r.Gimnasticar.ImeSrednjeImePrezimeDatumRodjenja + " " + total; streamWriter.WriteLine(line); } }