예제 #1
0
 public virtual void updateRezultatEkipe(Ekipa e, RezultatskoTakmicenje rezTak, List <RezultatUkupno> rezultati)
 {
     if (rezTak.ImaEkipnoTakmicenje)
     {
         PoredakEkipno.recreateRezultat(e, rezTak, rezultati);
     }
 }
예제 #2
0
 public virtual void updateRezultatiOnEkipaAdded(Ekipa e, RezultatskoTakmicenje rezTak,
                                                 List <RezultatUkupno> rezultati)
 {
     if (rezTak.ImaEkipnoTakmicenje)
     {
         PoredakEkipno.addEkipa(e, rezTak, rezultati);
     }
 }
예제 #3
0
 public Takmicenje1(Gimnastika gimnastika)
 {
     _poredakUkupno = new PoredakUkupno(DeoTakmicenjaKod.Takmicenje1);
     foreach (Sprava s in Sprave.getSprave(gimnastika))
     {
         if (s != Sprava.Preskok)
             _poredakSprava.Add(new PoredakSprava(DeoTakmicenjaKod.Takmicenje1, s));
     }
     _poredakPreskok = new PoredakPreskok(DeoTakmicenjaKod.Takmicenje1);
     _poredakEkipno = new PoredakEkipno(DeoTakmicenjaKod.Takmicenje1);
 }
예제 #4
0
 // Za finale kupa
 public virtual void updateRezultatiOnEkipaAdded(Ekipa e, List <RezultatUkupno> rezultati,
                                                 RezultatskoTakmicenje rezTak, RezultatskoTakmicenje rezTak1, RezultatskoTakmicenje rezTak2)
 {
     if (!rezTak.ImaEkipnoTakmicenje)
     {
         return;
     }
     PoredakEkipnoFinaleKupa.addEkipa(e, rezTak, rezTak1, rezTak2);
     if (rezTak.odvojenoTak4())
     {
         PoredakEkipno.addEkipa(e, rezTak, rezultati);
     }
 }
예제 #5
0
 public virtual void updateRezultatiOnEkipaDeleted(Ekipa e, RezultatskoTakmicenje rezTak)
 {
     if (!rezTak.ImaEkipnoTakmicenje)
     {
         return;
     }
     PoredakEkipno.deleteEkipa(e, rezTak);
     if (PoredakEkipnoFinaleKupa != null)
     {
         PoredakEkipnoFinaleKupa.deleteEkipa(e, rezTak);
     }
     if (PoredakEkipnoZbirViseKola != null)
     {
         PoredakEkipnoZbirViseKola.deleteEkipa(e, rezTak);
     }
 }
예제 #6
0
        public virtual void loadFromDump(StringReader reader, IdMap map)
        {
            int count = int.Parse(reader.ReadLine());

            for (int i = 0; i < count; ++i)
            {
                reader.ReadLine();  // id
                UcesnikTakmicenja4 u = new UcesnikTakmicenja4();
                u.loadFromDump(reader, map);
                Ucesnici.Add(u);
            }

            string        id = reader.ReadLine();
            PoredakEkipno p  = null;

            if (id != NULL)
            {
                p = new PoredakEkipno();
                p.loadFromDump(reader, map);
            }
            Poredak = p;
        }
예제 #7
0
        public Takmicenje1(Takmicenje takmicenje)
        {
            if (takmicenje.ZbirViseKola)
            {
                _poredakUkupnoZbirViseKola = new PoredakUkupnoZbirViseKola();
                _poredakEkipnoZbirViseKola = new PoredakEkipnoZbirViseKola();
            }
            else if (takmicenje.FinaleKupa)
            {
                _poredakUkupnoFinaleKupa = new PoredakUkupnoFinaleKupa();
                _poredakEkipnoFinaleKupa = new PoredakEkipnoFinaleKupa();
            }

            _poredakUkupno = new PoredakUkupno(DeoTakmicenjaKod.Takmicenje1);
            foreach (Sprava s in Sprave.getSprave(takmicenje.Gimnastika))
            {
                if (s != Sprava.Preskok)
                {
                    _poredakSprava.Add(new PoredakSprava(DeoTakmicenjaKod.Takmicenje1, s));
                }
            }
            _poredakPreskok = new PoredakPreskok(DeoTakmicenjaKod.Takmicenje1);
            _poredakEkipno  = new PoredakEkipno(DeoTakmicenjaKod.Takmicenje1);
        }
예제 #8
0
        public virtual void create(RezultatskoTakmicenje rezTak, PoredakEkipno poredakPrvoKolo,
            PoredakEkipno poredakDrugoKolo)
        {
            IList<Ekipa> ekipe = new List<Ekipa>(rezTak.Takmicenje1.Ekipe);

            // NOTE: Da bi Ekipa mogla da se koristi kao key u Dictionary, mora da implementira
            // interfejs IEquatable<Ekipa>.
            IDictionary<Ekipa, RezultatEkipnoFinaleKupa> rezultatiMap =
                new Dictionary<Ekipa, RezultatEkipnoFinaleKupa>();
            foreach (Ekipa e in ekipe)
            {
                RezultatEkipnoFinaleKupa rezultat = new RezultatEkipnoFinaleKupa();
                rezultat.Ekipa = e;
                rezultatiMap.Add(e, rezultat);
            }

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

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

            List<RezultatEkipnoFinaleKupa> rezultati = new List<RezultatEkipnoFinaleKupa>(rezultatiMap.Values);
            Rezultati.Clear();
            foreach (RezultatEkipnoFinaleKupa 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 (RezultatEkipnoFinaleKupa rez in Rezultati)
            {
                if (rez.TotalPrvoKolo == null && rez.TotalDrugoKolo == null)
                {
                    rez.setTotal(null);
                    continue;
                }
                float total1 = rez.TotalPrvoKolo == null ? 0 : rez.TotalPrvoKolo.Value;
                float total2 = rez.TotalDrugoKolo == null ? 0 : rez.TotalDrugoKolo.Value;
                float total;

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

            rankRezultati();
            if (rezTak.Propozicije.OdvojenoTak4)
                updateKvalStatus(rezTak.Propozicije.BrojEkipaUFinalu, 0);
        }
예제 #9
0
        public virtual void loadFromDump(StringReader reader, IdMap map)
        {
            int count = int.Parse(reader.ReadLine());

            for (int i = 0; i < count; ++i)
            {
                Gimnasticari.Add(map.gimnasticariMap[int.Parse(reader.ReadLine())]);
            }

            string id;

            count = int.Parse(reader.ReadLine());
            for (int i = 0; i < count; ++i)
            {
                id = reader.ReadLine();
                Ekipa e = new Ekipa();
                map.ekipeMap.Add(int.Parse(id), e);
                e.loadFromDump(reader, map);
                Ekipe.Add(e);
            }

            id = reader.ReadLine();
            PoredakUkupno poredakUkupno = null;

            if (id != NULL)
            {
                poredakUkupno = new PoredakUkupno();
                poredakUkupno.loadFromDump(reader, map);
            }
            PoredakUkupno = poredakUkupno;

            count = int.Parse(reader.ReadLine());
            for (int i = 0; i < count; ++i)
            {
                reader.ReadLine();  // id
                PoredakSprava poredakSprava = new PoredakSprava();
                poredakSprava.loadFromDump(reader, map);
                PoredakSprava.Add(poredakSprava);
            }

            id = reader.ReadLine();
            PoredakPreskok poredakPreskok = null;

            if (id != NULL)
            {
                poredakPreskok = new PoredakPreskok();
                poredakPreskok.loadFromDump(reader, map);
            }
            PoredakPreskok = poredakPreskok;

            id = reader.ReadLine();
            PoredakEkipno poredakEkipno = null;

            if (id != NULL)
            {
                poredakEkipno = new PoredakEkipno();
                poredakEkipno.loadFromDump(reader, map);
            }
            PoredakEkipno = poredakEkipno;

            id = reader.ReadLine();
            PoredakUkupnoFinaleKupa poredakUkupnoFinaleKupa = null;

            if (id != NULL)
            {
                poredakUkupnoFinaleKupa = new PoredakUkupnoFinaleKupa();
                poredakUkupnoFinaleKupa.loadFromDump(reader, map);
            }
            PoredakUkupnoFinaleKupa = poredakUkupnoFinaleKupa;

            count = int.Parse(reader.ReadLine());
            for (int i = 0; i < count; ++i)
            {
                reader.ReadLine();  // id
                PoredakSpravaFinaleKupa p = new PoredakSpravaFinaleKupa();
                p.loadFromDump(reader, map);
                PoredakSpravaFinaleKupa.Add(p);
            }

            id = reader.ReadLine();
            PoredakEkipnoFinaleKupa poredakEkipnoFinaleKupa = null;

            if (id != NULL)
            {
                poredakEkipnoFinaleKupa = new PoredakEkipnoFinaleKupa();
                poredakEkipnoFinaleKupa.loadFromDump(reader, map);
            }
            PoredakEkipnoFinaleKupa = poredakEkipnoFinaleKupa;

            id = reader.ReadLine();
            PoredakUkupnoZbirViseKola poredakUkupnoZbirViseKola = null;

            if (id != NULL)
            {
                poredakUkupnoZbirViseKola = new PoredakUkupnoZbirViseKola();
                poredakUkupnoZbirViseKola.loadFromDump(reader, map);
            }
            PoredakUkupnoZbirViseKola = poredakUkupnoZbirViseKola;

            id = reader.ReadLine();
            PoredakEkipnoZbirViseKola poredakEkipnoZbirViseKola = null;

            if (id != NULL)
            {
                poredakEkipnoZbirViseKola = new PoredakEkipnoZbirViseKola();
                poredakEkipnoZbirViseKola.loadFromDump(reader, map);
            }
            PoredakEkipnoZbirViseKola = poredakEkipnoZbirViseKola;
        }
예제 #10
0
        public virtual void dump(StringBuilder strBuilder)
        {
            strBuilder.AppendLine(Id.ToString());

            // gimnasticari
            strBuilder.AppendLine(Gimnasticari.Count.ToString());
            foreach (GimnasticarUcesnik g in Gimnasticari)
            {
                strBuilder.AppendLine(g.Id.ToString());
            }

            // ekipe
            strBuilder.AppendLine(Ekipe.Count.ToString());
            foreach (Ekipa e in Ekipe)
            {
                e.dump(strBuilder);
            }

            if (PoredakUkupno == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakUkupno.dump(strBuilder);
            }

            strBuilder.AppendLine(PoredakSprava.Count.ToString());
            foreach (PoredakSprava p in PoredakSprava)
            {
                p.dump(strBuilder);
            }

            if (PoredakPreskok == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakPreskok.dump(strBuilder);
            }

            if (PoredakEkipno == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakEkipno.dump(strBuilder);
            }

            if (PoredakUkupnoFinaleKupa == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakUkupnoFinaleKupa.dump(strBuilder);
            }

            strBuilder.AppendLine(PoredakSpravaFinaleKupa.Count.ToString());
            foreach (PoredakSpravaFinaleKupa p in PoredakSpravaFinaleKupa)
            {
                p.dump(strBuilder);
            }

            if (PoredakEkipnoFinaleKupa == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakEkipnoFinaleKupa.dump(strBuilder);
            }

            if (PoredakUkupnoZbirViseKola == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakUkupnoZbirViseKola.dump(strBuilder);
            }

            if (PoredakEkipnoZbirViseKola == null)
            {
                strBuilder.AppendLine(NULL);
            }
            else
            {
                PoredakEkipnoZbirViseKola.dump(strBuilder);
            }
        }
예제 #11
0
 public Takmicenje4()
 {
     _poredak = new PoredakEkipno(DeoTakmicenjaKod.Takmicenje4);
 }
예제 #12
0
 public Takmicenje4()
 {
     _poredak = new PoredakEkipno(DeoTakmicenjaKod.Takmicenje4);
 }