Пример #1
0
        public virtual void create(RezultatskoTakmicenje rezTak, RezultatskoTakmicenje rezTak1,
                                   RezultatskoTakmicenje rezTak2, RezultatskoTakmicenje rezTak3, RezultatskoTakmicenje rezTak4)
        {
            IList <GimnasticarUcesnik> gimnasticari = new List <GimnasticarUcesnik>(rezTak.Takmicenje1.Gimnasticari);

            // NOTE: Da bi GimnasticarUcesnik mogao da se koristi kao key u Dictionary, mora da implementira
            // interfejs IEquatable<GimnasticarUcesnik>.
            IDictionary <GimnasticarUcesnik, RezultatUkupnoZbirViseKola> rezultatiMap =
                new Dictionary <GimnasticarUcesnik, RezultatUkupnoZbirViseKola>();

            foreach (GimnasticarUcesnik g in gimnasticari)
            {
                RezultatUkupnoZbirViseKola rezultat = new RezultatUkupnoZbirViseKola();
                rezultat.Gimnasticar = g;
                rezultatiMap.Add(g, rezultat);
            }

            foreach (RezultatUkupno r in rezTak1.Takmicenje1.PoredakUkupno.Rezultati)
            {
                if (rezultatiMap.ContainsKey(r.Gimnasticar))
                {
                    rezultatiMap[r.Gimnasticar].initPrvoKolo(r);
                }
            }
            foreach (RezultatUkupno r in rezTak2.Takmicenje1.PoredakUkupno.Rezultati)
            {
                if (rezultatiMap.ContainsKey(r.Gimnasticar))
                {
                    rezultatiMap[r.Gimnasticar].initDrugoKolo(r);
                }
            }
            if (rezTak3 != null)
            {
                foreach (RezultatUkupno r in rezTak3.Takmicenje1.PoredakUkupno.Rezultati)
                {
                    if (rezultatiMap.ContainsKey(r.Gimnasticar))
                    {
                        rezultatiMap[r.Gimnasticar].initTreceKolo(r);
                    }
                }
            }
            if (rezTak4 != null)
            {
                foreach (RezultatUkupno r in rezTak4.Takmicenje1.PoredakUkupno.Rezultati)
                {
                    if (rezultatiMap.ContainsKey(r.Gimnasticar))
                    {
                        rezultatiMap[r.Gimnasticar].initCetvrtoKolo(r);
                    }
                }
            }

            Rezultati.Clear();
            foreach (RezultatUkupnoZbirViseKola r in rezultatiMap.Values)
            {
                r.calculateTotal();
                Rezultati.Add(r);
            }
            rankRezultati();
        }
Пример #2
0
        public virtual void deleteGimnasticar(GimnasticarUcesnik g, RezultatskoTakmicenje rezTak)
        {
            RezultatUkupnoZbirViseKola r = getRezultat(g);

            if (r != null)
            {
                Rezultati.Remove(r);
                rankRezultati();
            }
        }
Пример #3
0
        public virtual void addGimnasticar(GimnasticarUcesnik g, RezultatskoTakmicenje rezTak,
                                           RezultatskoTakmicenje rezTak1, RezultatskoTakmicenje rezTak2, RezultatskoTakmicenje rezTak3,
                                           RezultatskoTakmicenje rezTak4)
        {
            RezultatUkupnoZbirViseKola rezultat = new RezultatUkupnoZbirViseKola();

            rezultat.Gimnasticar = g;

            foreach (RezultatUkupno r in rezTak1.Takmicenje1.PoredakUkupno.Rezultati)
            {
                if (r.Gimnasticar.Equals(g))
                {
                    rezultat.initPrvoKolo(r);
                    break;
                }
            }
            foreach (RezultatUkupno r in rezTak2.Takmicenje1.PoredakUkupno.Rezultati)
            {
                if (r.Gimnasticar.Equals(g))
                {
                    rezultat.initDrugoKolo(r);
                    break;
                }
            }
            if (rezTak3 != null)
            {
                foreach (RezultatUkupno r in rezTak3.Takmicenje1.PoredakUkupno.Rezultati)
                {
                    if (r.Gimnasticar.Equals(g))
                    {
                        rezultat.initTreceKolo(r);
                        break;
                    }
                }
            }
            if (rezTak4 != null)
            {
                foreach (RezultatUkupno r in rezTak4.Takmicenje1.PoredakUkupno.Rezultati)
                {
                    if (r.Gimnasticar.Equals(g))
                    {
                        rezultat.initCetvrtoKolo(r);
                        break;
                    }
                }
            }

            rezultat.calculateTotal();
            Rezultati.Add(rezultat);
            rankRezultati();
        }
Пример #4
0
        public virtual void loadFromDump(StringReader reader, IdMap map)
        {
            DeoTakmicenjaKod = (DeoTakmicenjaKod)Enum.Parse(typeof(DeoTakmicenjaKod), reader.ReadLine());

            int brojRezultata = int.Parse(reader.ReadLine());

            for (int i = 0; i < brojRezultata; ++i)
            {
                reader.ReadLine();  // id
                RezultatUkupnoZbirViseKola r = new RezultatUkupnoZbirViseKola();
                r.loadFromDump(reader, map);
                Rezultati.Add(r);
            }
        }
Пример #5
0
        public virtual void create(RezultatskoTakmicenje rezTak, PoredakUkupno poredakPrvoKolo,
            PoredakUkupno poredakDrugoKolo, PoredakUkupno poredakTreceKolo, PoredakUkupno poredakCetvrtoKolo)
        {
            IList<GimnasticarUcesnik> gimnasticari = new List<GimnasticarUcesnik>(rezTak.Takmicenje1.Gimnasticari);

            // NOTE: Da bi GimnasticarUcesnik mogao da se koristi kao key u Dictionary, mora da implementira
            // interfejs IEquatable<GimnasticarUcesnik>.
            IDictionary<GimnasticarUcesnik, RezultatUkupnoZbirViseKola> rezultatiMap =
                new Dictionary<GimnasticarUcesnik, RezultatUkupnoZbirViseKola>();
            foreach (GimnasticarUcesnik g in gimnasticari)
            {
                RezultatUkupnoZbirViseKola rezultat = new RezultatUkupnoZbirViseKola();
                rezultat.Gimnasticar = g;
                rezultatiMap.Add(g, rezultat);
            }

            if (poredakPrvoKolo != null)
            {
                foreach (RezultatUkupno r in poredakPrvoKolo.Rezultati)
                {
                    if (rezultatiMap.ContainsKey(r.Gimnasticar))
                    {
                        rezultatiMap[r.Gimnasticar].ParterPrvoKolo = r.Parter;
                        rezultatiMap[r.Gimnasticar].KonjPrvoKolo = r.Konj;
                        rezultatiMap[r.Gimnasticar].KarikePrvoKolo = r.Karike;
                        rezultatiMap[r.Gimnasticar].PreskokPrvoKolo = r.Preskok;
                        rezultatiMap[r.Gimnasticar].RazbojPrvoKolo = r.Razboj;
                        rezultatiMap[r.Gimnasticar].VratiloPrvoKolo = r.Vratilo;
                        rezultatiMap[r.Gimnasticar].DvovisinskiRazbojPrvoKolo = r.DvovisinskiRazboj;
                        rezultatiMap[r.Gimnasticar].GredaPrvoKolo = r.Greda;
                        rezultatiMap[r.Gimnasticar].TotalPrvoKolo = r.Total;
                    }
                }
            }

            if (poredakDrugoKolo != null)
            {
                foreach (RezultatUkupno r in poredakDrugoKolo.Rezultati)
                {
                    if (rezultatiMap.ContainsKey(r.Gimnasticar))
                    {
                        rezultatiMap[r.Gimnasticar].ParterDrugoKolo = r.Parter;
                        rezultatiMap[r.Gimnasticar].KonjDrugoKolo = r.Konj;
                        rezultatiMap[r.Gimnasticar].KarikeDrugoKolo = r.Karike;
                        rezultatiMap[r.Gimnasticar].PreskokDrugoKolo = r.Preskok;
                        rezultatiMap[r.Gimnasticar].RazbojDrugoKolo = r.Razboj;
                        rezultatiMap[r.Gimnasticar].VratiloDrugoKolo = r.Vratilo;
                        rezultatiMap[r.Gimnasticar].DvovisinskiRazbojDrugoKolo = r.DvovisinskiRazboj;
                        rezultatiMap[r.Gimnasticar].GredaDrugoKolo = r.Greda;
                        rezultatiMap[r.Gimnasticar].TotalDrugoKolo = r.Total;
                    }
                }
            }

            if (poredakTreceKolo != null)
            {
                foreach (RezultatUkupno r in poredakTreceKolo.Rezultati)
                {
                    if (rezultatiMap.ContainsKey(r.Gimnasticar))
                    {
                        rezultatiMap[r.Gimnasticar].ParterTreceKolo = r.Parter;
                        rezultatiMap[r.Gimnasticar].KonjTreceKolo = r.Konj;
                        rezultatiMap[r.Gimnasticar].KarikeTreceKolo = r.Karike;
                        rezultatiMap[r.Gimnasticar].PreskokTreceKolo = r.Preskok;
                        rezultatiMap[r.Gimnasticar].RazbojTreceKolo = r.Razboj;
                        rezultatiMap[r.Gimnasticar].VratiloTreceKolo = r.Vratilo;
                        rezultatiMap[r.Gimnasticar].DvovisinskiRazbojTreceKolo = r.DvovisinskiRazboj;
                        rezultatiMap[r.Gimnasticar].GredaTreceKolo = r.Greda;
                        rezultatiMap[r.Gimnasticar].TotalTreceKolo = r.Total;
                    }
                }
            }

            if (poredakCetvrtoKolo != null)
            {
                foreach (RezultatUkupno r in poredakCetvrtoKolo.Rezultati)
                {
                    if (rezultatiMap.ContainsKey(r.Gimnasticar))
                    {
                        rezultatiMap[r.Gimnasticar].ParterCetvrtoKolo = r.Parter;
                        rezultatiMap[r.Gimnasticar].KonjCetvrtoKolo = r.Konj;
                        rezultatiMap[r.Gimnasticar].KarikeCetvrtoKolo = r.Karike;
                        rezultatiMap[r.Gimnasticar].PreskokCetvrtoKolo = r.Preskok;
                        rezultatiMap[r.Gimnasticar].RazbojCetvrtoKolo = r.Razboj;
                        rezultatiMap[r.Gimnasticar].VratiloCetvrtoKolo = r.Vratilo;
                        rezultatiMap[r.Gimnasticar].DvovisinskiRazbojCetvrtoKolo = r.DvovisinskiRazboj;
                        rezultatiMap[r.Gimnasticar].GredaCetvrtoKolo = r.Greda;
                        rezultatiMap[r.Gimnasticar].TotalCetvrtoKolo = r.Total;
                    }
                }
            }

            List<RezultatUkupnoZbirViseKola> rezultati = new List<RezultatUkupnoZbirViseKola>(rezultatiMap.Values);
            Rezultati.Clear();
            foreach (RezultatUkupnoZbirViseKola rez in rezultati)
                Rezultati.Add(rez);

            // Total moze da bude krajnja finalna ocena ili ulazna finalna ocena. U oba slucaja se Total izracunava
            // na isti nacin.
            foreach (RezultatUkupnoZbirViseKola rez in Rezultati)
            {
                if (rez.TotalPrvoKolo == null && rez.TotalDrugoKolo == null
                && rez.TotalTreceKolo == null && rez.TotalCetvrtoKolo == null)
                {
                    rez.setTotal(null);
                    continue;
                }
                float total1 = rez.TotalPrvoKolo == null ? 0 : rez.TotalPrvoKolo.Value;
                float total2 = rez.TotalDrugoKolo == null ? 0 : rez.TotalDrugoKolo.Value;
                float total3 = rez.TotalTreceKolo == null ? 0 : rez.TotalTreceKolo.Value;
                float total4 = rez.TotalCetvrtoKolo == null ? 0 : rez.TotalCetvrtoKolo.Value;
                float total;

                /*if (rezTak.Propozicije.Tak2FinalnaOcenaJeZbirObaKola)
                    total = total1 + total2;
                else if (rezTak.Propozicije.Tak2FinalnaOcenaJeMaxObaKola)
                    total = total1 > total2 ? total1 : total2;
                else
                {
                    // TODO3: Proveri da li ovde treba podesavati broj decimala.
                    total = (total1 + total2) / 2;
                    if (rezTak.Propozicije.Tak2NeRacunajProsekAkoNemaOceneIzObaKola
                        && (rez.TotalPrvoKolo == null || rez.TotalDrugoKolo == null))
                    {
                        total = total1 + total2;
                    }
                }*/
                total = total1 + total2 + total3 + total4;
                rez.setTotal(total);
            }

            rankRezultati();
            /*if (rezTak.Propozicije.OdvojenoTak2)
                updateKvalStatus(rezTak.Propozicije.BrojFinalistaTak2,
                                 rezTak.Propozicije.NeogranicenBrojTakmicaraIzKlubaTak2,
                                 rezTak.Propozicije.MaxBrojTakmicaraIzKlubaTak2,
                                 rezTak.Propozicije.BrojRezerviTak2);*/
        }