public virtual void updateRezultatiOnGimnasticarDeleted(GimnasticarUcesnik g, IList <Ocena> ocene, RezultatskoTakmicenje rezTak) { PoredakUkupno.deleteGimnasticar(g, rezTak); foreach (Ocena o in ocene) { if (o.Sprava == Sprava.Preskok) { PoredakPreskok.deleteGimnasticar(g, rezTak); } else { getPoredakSprava(o.Sprava).deleteGimnasticar(g, rezTak); } } if (PoredakUkupnoFinaleKupa != null) { PoredakUkupnoFinaleKupa.deleteGimnasticar(g, rezTak); } foreach (PoredakSpravaFinaleKupa p in PoredakSpravaFinaleKupa) { p.deleteGimnasticar(g, rezTak); } if (PoredakUkupnoZbirViseKola != null) { PoredakUkupnoZbirViseKola.deleteGimnasticar(g, rezTak); } }
public static IDictionary <int, IList <Pair <RezultatskoTakmicenje, RezultatUkupno> > > getGimRezUkupnoMap( IList <RezultatskoTakmicenje> rezTakmicenja, DeoTakmicenjaKod deoTakKod) { IDictionary <int, IList <Pair <RezultatskoTakmicenje, RezultatUkupno> > > result = new Dictionary <int, IList <Pair <RezultatskoTakmicenje, RezultatUkupno> > >(); foreach (RezultatskoTakmicenje rt in rezTakmicenja) { // TODO: Ovo nece raditi za Takmicenje 4 jer ne postoji poredak ukupno za takmicenje 4. Mozda bi za // takmicenje 4 takodje trebalo kreirati i poredak ukupno, koji ne bi bio vidljiv u programu i ciji // bi se rezultati koristili za ekipni poredak. PoredakUkupno p = rt.getPoredakUkupno(deoTakKod); foreach (RezultatUkupno r in p.Rezultati) { Pair <RezultatskoTakmicenje, RezultatUkupno> rez = new Pair <RezultatskoTakmicenje, RezultatUkupno>(rt, r); if (result.ContainsKey(r.Gimnasticar.Id)) { result[r.Gimnasticar.Id].Add(rez); } else { IList <Pair <RezultatskoTakmicenje, RezultatUkupno> > rezList = new List <Pair <RezultatskoTakmicenje, RezultatUkupno> >(); rezList.Add(rez); result.Add(r.Gimnasticar.Id, rezList); } } } return(result); }
// Za finale kupa public virtual void updateRezultatiOnGimnasticarAdded(GimnasticarUcesnik g, IList <Ocena> ocene, RezultatskoTakmicenje rezTak, RezultatskoTakmicenje rezTak1, RezultatskoTakmicenje rezTak2) { PoredakUkupnoFinaleKupa.addGimnasticar(g, rezTak, rezTak1, rezTak2); foreach (PoredakSpravaFinaleKupa p in PoredakSpravaFinaleKupa) { p.addGimnasticar(g, rezTak, rezTak1, rezTak2); } if (rezTak.odvojenoTak2()) { PoredakUkupno.addGimnasticar(g, ocene, rezTak); } if (rezTak.odvojenoTak3()) { foreach (Ocena o in ocene) { if (o.Sprava == Sprava.Preskok) { PoredakPreskok.addGimnasticar(g, o, rezTak); } else { getPoredakSprava(o.Sprava).addGimnasticar(g, o, rezTak); } } } }
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); }
public virtual void updateRezultatiOnOcenaEdited(Ocena o, RezultatskoTakmicenje rezTak) { if (Gimnasticari.Contains(o.Gimnasticar)) { PoredakUkupno.editOcena(o, rezTak); if (o.Sprava == Sprava.Preskok) { PoredakPreskok.editOcena(o, rezTak); } else { getPoredakSprava(o.Sprava).editOcena(o, rezTak); } } }
public virtual void updateRezultatiOnGimnasticarAdded(GimnasticarUcesnik g, IList <Ocena> ocene, RezultatskoTakmicenje rezTak) { PoredakUkupno.addGimnasticar(g, ocene, rezTak); foreach (Ocena o in ocene) { if (o.Sprava == Sprava.Preskok) { PoredakPreskok.addGimnasticar(g, o, rezTak); } else { getPoredakSprava(o.Sprava).addGimnasticar(g, o, rezTak); } } }
public virtual void loadFromDump(StringReader reader, IdMap map) { int count = int.Parse(reader.ReadLine()); for (int i = 0; i < count; ++i) { reader.ReadLine(); // id UcesnikTakmicenja2 u = new UcesnikTakmicenja2(); u.loadFromDump(reader, map); Ucesnici.Add(u); } string id = reader.ReadLine(); PoredakUkupno p = null; if (id != NULL) { p = new PoredakUkupno(); p.loadFromDump(reader, map); } Poredak = p; }
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); }
public virtual void create(RezultatskoTakmicenje rezTak, PoredakUkupno poredakPrvoKolo, PoredakUkupno poredakDrugoKolo) { 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, RezultatUkupnoFinaleKupa> rezultatiMap = new Dictionary<GimnasticarUcesnik, RezultatUkupnoFinaleKupa>(); foreach (GimnasticarUcesnik g in gimnasticari) { RezultatUkupnoFinaleKupa rezultat = new RezultatUkupnoFinaleKupa(); 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; } } } List<RezultatUkupnoFinaleKupa> rezultati = new List<RezultatUkupnoFinaleKupa>(rezultatiMap.Values); Rezultati.Clear(); foreach (RezultatUkupnoFinaleKupa 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 (RezultatUkupnoFinaleKupa 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.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; } } rez.setTotal(total); } rankRezultati(); if (rezTak.Propozicije.OdvojenoTak2) updateKvalStatus(rezTak.Propozicije.BrojFinalistaTak2, rezTak.Propozicije.NeogranicenBrojTakmicaraIzKlubaTak2, rezTak.Propozicije.MaxBrojTakmicaraIzKlubaTak2, rezTak.Propozicije.BrojRezerviTak2); }
public Takmicenje2() { _poredak = new PoredakUkupno(DeoTakmicenjaKod.Takmicenje2); }
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; }
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); } }