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(); }
public virtual void deleteGimnasticar(GimnasticarUcesnik g, RezultatskoTakmicenje rezTak) { RezultatUkupnoZbirViseKola r = getRezultat(g); if (r != null) { Rezultati.Remove(r); rankRezultati(); } }
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(); }
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); } }
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);*/ }