Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
            }
        }