Ejemplo n.º 1
0
        public virtual void loadFromDump(StringReader reader, IdMap map)
        {
            string naziv = reader.ReadLine();

            Naziv   = naziv != NULL ? naziv : null;
            RedBroj = byte.Parse(reader.ReadLine());

            string line = reader.ReadLine();

            Takmicenje = line != NULL ? map.takmicenjeMap[int.Parse(line)] : null;
        }
Ejemplo n.º 2
0
        public virtual void loadFromDump(StringReader reader, IdMap map)
        {
            string naziv = reader.ReadLine();

            Naziv = naziv != NULL ? naziv : null;
            string kod = reader.ReadLine();

            Kod = kod != NULL ? kod : null;

            Takmicenje = map.takmicenjeMap[int.Parse(reader.ReadLine())];
        }
Ejemplo n.º 3
0
 public override int GetHashCode()
 {
     unchecked
     {
         int result = 14;
         result = 29 * result + Gimnastika.GetHashCode();
         result = 29 * result + Takmicenje.GetHashCode();
         result = 29 * result + Kategorija.GetHashCode();
         result = 29 * result + TakmicenjeDescription.GetHashCode();
         return(result);
     }
 }
Ejemplo n.º 4
0
        public RezultatskoTakmicenje(Takmicenje takmicenje, TakmicarskaKategorija
                                     kategorija, RezultatskoTakmicenjeDescription desc, Propozicije propozicije)
        {
            this.takmicenje  = takmicenje;
            this.kategorija  = kategorija;
            this.description = desc;
            this.propozicije = propozicije;
            this.gimnastika  = takmicenje.Gimnastika;

            Takmicenje1 = new Takmicenje1(takmicenje);
            Takmicenje2 = new Takmicenje2();
            Takmicenje3 = new Takmicenje3(Gimnastika);
            Takmicenje4 = new Takmicenje4();
        }
Ejemplo n.º 5
0
        public override bool Equals(object other)
        {
            if (object.ReferenceEquals(this, other))
            {
                return(true);
            }
            if (!(other is Takmicenje))
            {
                return(false);
            }

            Takmicenje that = (Takmicenje)other;

            return(this.Naziv.ToUpper() == that.Naziv.ToUpper() &&
                   this.Gimnastika == that.Gimnastika &&
                   this.Datum == that.Datum);
        }
Ejemplo n.º 6
0
        public RasporedSudija(IList <TakmicarskaKategorija> kategorije,
                              DeoTakmicenjaKod deoTakKod, Gimnastika gimnastika)
        {
            if (kategorije.Count == 0)
            {
                throw new ArgumentException("Kategorije ne smeju da budu prazne.");
            }

            this.Naziv      = RasporedNastupa.kreirajNaziv(kategorije);
            this.deoTakKod  = deoTakKod;
            this.takmicenje = kategorije[0].Takmicenje;

            Sprava[] sprave = Sprave.getSprave(gimnastika);
            foreach (Sprava s in sprave)
            {
                odbori.Add(new SudijskiOdborNaSpravi(s));
            }
        }
Ejemplo n.º 7
0
        public virtual void kreirajRezultateViseKola(IList <RezultatskoTakmicenje> rezTakmicenja,
                                                     List <IList <RezultatskoTakmicenje> > rezTakmicenjaPrethodnaKola)
        {
            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                RezultatskoTakmicenje rezTak1 = Takmicenje.getRezTakmicenje(rezTakmicenjaPrethodnaKola[0], 0, rt.Kategorija);
                RezultatskoTakmicenje rezTak2 = Takmicenje.getRezTakmicenje(rezTakmicenjaPrethodnaKola[1], 0, rt.Kategorija);
                RezultatskoTakmicenje rezTak3 = null;
                RezultatskoTakmicenje rezTak4 = null;
                if (TreceKolo != null)
                {
                    rezTak3 = Takmicenje.getRezTakmicenje(rezTakmicenjaPrethodnaKola[2], 0, rt.Kategorija);
                }
                if (CetvrtoKolo != null)
                {
                    rezTak4 = Takmicenje.getRezTakmicenje(rezTakmicenjaPrethodnaKola[3], 0, rt.Kategorija);
                }

                if (FinaleKupa)
                {
                    rt.Takmicenje1.PoredakUkupnoFinaleKupa.create(rt, rezTak1, rezTak2);

                    rt.Takmicenje1.initPoredakSpravaFinaleKupa(Gimnastika);
                    foreach (PoredakSpravaFinaleKupa p in rt.Takmicenje1.PoredakSpravaFinaleKupa)
                    {
                        p.create(rt, rezTak1, rezTak2);
                    }

                    // TODO4: Obradi slucaj kombinovanog ekipnog takmicenja (na svim mestima gde se racuna).
                    rt.Takmicenje1.PoredakEkipnoFinaleKupa.create(rt, rezTak1, rezTak2);
                }
                else if (ZbirViseKola)
                {
                    rt.Takmicenje1.PoredakUkupnoZbirViseKola.create(rt, rezTak1, rezTak2, rezTak3, rezTak4);
                    rt.Takmicenje1.PoredakEkipnoZbirViseKola.create(rt, rezTak1, rezTak2, rezTak3, rezTak4);
                }
            }
        }
Ejemplo n.º 8
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);
        }
Ejemplo n.º 9
0
        public virtual void updateRezultatiOnChangedPropozicije(IDictionary <int, Domain.Propozicije> origPropozicijeMap,
                                                                Takmicenje takmicenje, IList <RezultatskoTakmicenje> rezTakmicenja, IList <Ocena> oceneTak1)
        {
            Propozicije origPropozicije = origPropozicijeMap[Id];

            bool rankPoredakUkupnoTak1              = false;
            bool createPoredakUkupnoTak1            = false;
            bool rankPoredakSpravaTak1              = false;
            bool rankPoredakPreskokTak1             = false;
            bool rankPoredakSpravaTak3              = false;
            bool rankPoredakPreskokTak3             = false;
            bool rankPoredakEkipeTak1               = false;
            bool createPoredakEkipeTak1             = false;
            bool calculatePoredakUkupnoFinaleKupa   = false;
            bool calculatePoredakUkupnoZbirViseKola = false;
            bool rankPoredakSpravaFinaleKupa        = false;
            bool calculatePoredakSpravaFinaleKupa   = false;
            bool calculatePoredakEkipnoFinaleKupa   = false;
            bool calculatePoredakEkipnoZbirViseKola = false;
            bool updateRezTak = false;

            // TODO: Fali kod za odvojeno takmicenje 2 finale kupa

            if (Propozicije.PostojiTak2 != origPropozicije.PostojiTak2)
            {
                // ignorisi, posto Takmicenje 2 uvek postoji, da bi se videli rezultati
            }
            if (Propozicije.OdvojenoTak2 != origPropozicije.OdvojenoTak2)
            {
                // Rangiraj ponovo rezultate jer se kval. status promenio.
                rankPoredakUkupnoTak1 = true;
            }
            if (Propozicije.ZaPreskokVisebojRacunajBoljuOcenu != origPropozicije.ZaPreskokVisebojRacunajBoljuOcenu)
            {
                createPoredakUkupnoTak1 = true;
            }
            if (Propozicije.NeogranicenBrojTakmicaraIzKlubaTak2 != origPropozicije.NeogranicenBrojTakmicaraIzKlubaTak2 ||
                Propozicije.MaxBrojTakmicaraIzKlubaTak2 != origPropozicije.MaxBrojTakmicaraIzKlubaTak2 ||
                Propozicije.MaxBrojTakmicaraTak2VaziZaDrzavu != origPropozicije.MaxBrojTakmicaraTak2VaziZaDrzavu ||
                Propozicije.BrojFinalistaTak2 != origPropozicije.BrojFinalistaTak2 ||
                Propozicije.BrojRezerviTak2 != origPropozicije.BrojRezerviTak2)
            {
                rankPoredakUkupnoTak1 = true;
            }

            if (Propozicije.PostojiTak3 != origPropozicije.PostojiTak3)
            {
                // ignorisi, posto Takmicenje 3 uvek postoji, da bi se videli rezultati
            }
            if (Propozicije.OdvojenoTak3 != origPropozicije.OdvojenoTak3)
            {
                // Rangiraj ponovo rezultate jer se kval. status promenio.
                if (takmicenje.StandardnoTakmicenje)
                {
                    rankPoredakSpravaTak1  = true;
                    rankPoredakPreskokTak1 = true;
                }
                else if (takmicenje.FinaleKupa)
                {
                    rankPoredakSpravaFinaleKupa = true;
                }
            }
            if (Propozicije.NeogranicenBrojTakmicaraIzKlubaTak3 != origPropozicije.NeogranicenBrojTakmicaraIzKlubaTak3 ||
                Propozicije.MaxBrojTakmicaraIzKlubaTak3 != origPropozicije.MaxBrojTakmicaraIzKlubaTak3 ||
                Propozicije.MaxBrojTakmicaraTak3VaziZaDrzavu != origPropozicije.MaxBrojTakmicaraTak3VaziZaDrzavu ||
                Propozicije.BrojFinalistaTak3 != origPropozicije.BrojFinalistaTak3 ||
                Propozicije.BrojRezerviTak3 != origPropozicije.BrojRezerviTak3)
            {
                if (takmicenje.StandardnoTakmicenje)
                {
                    rankPoredakSpravaTak1  = true;
                    rankPoredakPreskokTak1 = true;
                }
                else if (takmicenje.FinaleKupa)
                {
                    rankPoredakSpravaFinaleKupa = true;
                }
            }
            if (Propozicije.VecaEOcenaImaPrednost != origPropozicije.VecaEOcenaImaPrednost)
            {
                if (takmicenje.StandardnoTakmicenje)
                {
                    rankPoredakSpravaTak1  = true;
                    rankPoredakPreskokTak1 = true;
                    rankPoredakSpravaTak3  = true;
                    rankPoredakPreskokTak3 = true;
                }
                else if (takmicenje.FinaleKupa)
                {
                    rankPoredakSpravaTak1  = true;
                    rankPoredakPreskokTak1 = true;
                }
            }
            if (Propozicije.Tak1PreskokNaOsnovuObaPreskoka != origPropozicije.Tak1PreskokNaOsnovuObaPreskoka)
            {
                if (takmicenje.StandardnoTakmicenje || takmicenje.FinaleKupa)
                {
                    rankPoredakPreskokTak1 = true;
                }
            }
            if (Propozicije.Tak3PreskokNaOsnovuObaPreskoka != origPropozicije.Tak3PreskokNaOsnovuObaPreskoka)
            {
                if (takmicenje.StandardnoTakmicenje)
                {
                    rankPoredakPreskokTak3 = true;
                }
            }

            // TODO: Fali kod za odvojeno ekipno finale kupa

            if (Propozicije.PostojiTak4 != origPropozicije.PostojiTak4)
            {
                // TODO4: Ovaj deo (konkretno grana else if (Propozicije.PostojiTak4)) je pravio probleme kada se
                // kreira takmicenje gde postoji jedno ekipno takmicenje za sve kategorije (prava vrednost za
                // ImaEkipnoTakmicenje se podesi u updateImaEkipnoTakmicenje, a onda se ovde pogresno postavi na true
                // za sva rez.takmicenja). Proveri da li moze (i kada) da pravi probleme to sto sam ceo ovaj deo
                // zakomentarisao

                /*if (takmicenje.ZavrsenoTak1)
                 * {
                 *  // ignorisi
                 *  // TODO: Da li treba vracati originalnu vrednost za PostojiTak4 (isto i za PostojiTak2 i PostojiTak3)
                 * }
                 * else if (Propozicije.PostojiTak4)
                 * {
                 *  // ignorisi, posto se PoredakEkipno za takmicenje 1 uvek kreira
                 *  ImaEkipnoTakmicenje = true;
                 * }
                 * else
                 * {
                 *  // TODO: Razmisli da li treba pitati korisnika za potvrdu, pa zatim izbrisati ekipe i poredak ekipno.
                 *  ImaEkipnoTakmicenje = false;
                 * }*/
                // KombinovanoEkipnoTak se podesava u updateImaEkipnoTakmicenje.
            }
            if (Propozicije.OdvojenoTak4 != origPropozicije.OdvojenoTak4)
            {
                // Rangiraj ponovo rezultate jer se kval. status promenio.
                rankPoredakEkipeTak1 = true;
            }
            if (Propozicije.JednoTak4ZaSveKategorije != origPropozicije.JednoTak4ZaSveKategorije)
            {
                // rt.ImaEkipnoTakmicenje i rt.KombinovanoEkipnoTak su promenjeni u updateImaEkipnoTakmicenje.
                updateRezTak = true;

                // PoredakEkipno i Ekipe ignorisem, ostavljam korisniku da to ispodesava.
            }
            if (Propozicije.BrojRezultataKojiSeBodujuZaEkipu != origPropozicije.BrojRezultataKojiSeBodujuZaEkipu)
            {
                if (ImaEkipnoTakmicenje)
                {
                    createPoredakEkipeTak1 = true;
                }
            }
            if (!createPoredakEkipeTak1 && ImaEkipnoTakmicenje)
            {
                // Proveri da li treba ponovo racunati poredak zbog promenjenog nacina racunanja viseboja.
                bool create = false;
                if (!KombinovanoEkipnoTak &&
                    Propozicije.ZaPreskokVisebojRacunajBoljuOcenu != origPropozicije.ZaPreskokVisebojRacunajBoljuOcenu)
                {
                    create = true;
                }
                if (!create && KombinovanoEkipnoTak)
                {
                    // Proveri da li je nekom rez. takmicenju unutar istog descriptiona promenjen nacin racunanja
                    // viseboja.
                    foreach (RezultatskoTakmicenje rt2 in rezTakmicenja)
                    {
                        if (!rt2.TakmicenjeDescription.Equals(TakmicenjeDescription))
                        {
                            continue;
                        }
                        if (rt2.Propozicije.ZaPreskokVisebojRacunajBoljuOcenu
                            != origPropozicijeMap[rt2.Id].ZaPreskokVisebojRacunajBoljuOcenu)
                        {
                            create = true;
                            break;
                        }
                    }
                }
                if (create)
                {
                    createPoredakEkipeTak1 = true;
                }
            }
            if (Propozicije.BrojEkipaUFinalu != origPropozicije.BrojEkipaUFinalu)
            {
                if (ImaEkipnoTakmicenje)
                {
                    rankPoredakEkipeTak1 = true;
                }
            }

            if (Propozicije.NacinRacunanjaOceneFinaleKupaTak2 != origPropozicije.NacinRacunanjaOceneFinaleKupaTak2)
            {
                if (takmicenje.FinaleKupa)
                {
                    calculatePoredakUkupnoFinaleKupa = true;
                }
                else if (takmicenje.ZbirViseKola)
                {
                    calculatePoredakUkupnoZbirViseKola = true;
                }
            }

            if (Propozicije.NacinRacunanjaOceneFinaleKupaTak3 != origPropozicije.NacinRacunanjaOceneFinaleKupaTak3)
            {
                if (takmicenje.FinaleKupa)
                {
                    calculatePoredakSpravaFinaleKupa = true;
                }
            }

            if (Propozicije.NacinRacunanjaOceneFinaleKupaTak4 != origPropozicije.NacinRacunanjaOceneFinaleKupaTak4)
            {
                if (takmicenje.FinaleKupa)
                {
                    calculatePoredakEkipnoFinaleKupa = true;
                }
                else if (takmicenje.ZbirViseKola)
                {
                    calculatePoredakEkipnoZbirViseKola = true;
                }
            }

            if (updateRezTak)
            {
            }
            if (createPoredakUkupnoTak1)
            {
                Takmicenje1.PoredakUkupno.create(this, oceneTak1);
            }
            else if (rankPoredakUkupnoTak1)
            {
                Takmicenje1.PoredakUkupno.rankRezultati(Propozicije);
            }
            if (rankPoredakSpravaTak1)
            {
                foreach (PoredakSprava ps in Takmicenje1.PoredakSprava)
                {
                    ps.rankRezultati(Propozicije);
                }
            }
            if (rankPoredakPreskokTak1)
            {
                Takmicenje1.PoredakPreskok.rankRezultati(Propozicije);
            }
            if (rankPoredakSpravaTak3)
            {
                foreach (PoredakSprava ps in Takmicenje3.Poredak)
                {
                    ps.rankRezultati(Propozicije);
                }
            }
            if (rankPoredakPreskokTak3)
            {
                Takmicenje3.PoredakPreskok.rankRezultati(Propozicije);
            }
            if (createPoredakEkipeTak1)
            {
                Takmicenje1.PoredakEkipno.create(this,
                                                 Takmicenje.getEkipaRezultatiUkupnoMap(this, rezTakmicenja, DeoTakmicenjaKod.Takmicenje1));
            }
            else if (rankPoredakEkipeTak1)
            {
                Takmicenje1.PoredakEkipno.rankRezultati(Propozicije);
            }
            if (calculatePoredakUkupnoFinaleKupa)
            {
                Takmicenje1.PoredakUkupnoFinaleKupa.calculateTotal(Propozicije);
            }
            if (calculatePoredakUkupnoZbirViseKola)
            {
                Takmicenje1.PoredakUkupnoZbirViseKola.calculateTotal();
            }
            if (calculatePoredakSpravaFinaleKupa)
            {
                foreach (PoredakSpravaFinaleKupa p in Takmicenje1.PoredakSpravaFinaleKupa)
                {
                    p.calculateTotal(Propozicije);
                }
            }
            else if (rankPoredakSpravaFinaleKupa)
            {
                foreach (PoredakSpravaFinaleKupa p in Takmicenje1.PoredakSpravaFinaleKupa)
                {
                    p.rankRezultati(Propozicije);
                }
            }
            if (calculatePoredakEkipnoFinaleKupa)
            {
                Takmicenje1.PoredakEkipnoFinaleKupa.calculateTotal(Propozicije);
            }
            if (calculatePoredakEkipnoZbirViseKola)
            {
                Takmicenje1.PoredakEkipnoZbirViseKola.calculateTotal();
            }
        }
Ejemplo n.º 10
0
 // NOTE: Metod setTakmicenjeInternal nije za upotrebu vec se koristi samo kao
 // pomoc prilikom uspostavlja dvostruke asocijacije izmedju Takmicenja i
 // TakmicarskeKategorije (set aksesor za Takmicenje sam proglasio privatnim da
 // ga ne bi greskom koristio za uspostavljanje asocijacije). Ako je potrebno
 // da i Takmicenje ima metod za uspostavljanje asocijacije on bi izgledao
 // ovako
 //      public void setTakmicenje(Takmicenje t)
 //      {
 //          t.addKategorija(this);
 //      }
 public virtual void setTakmicenjeInternal(Takmicenje t)
 {
     Takmicenje = t;
 }