public virtual void create(RezultatskoTakmicenje rezTak, RezultatskoTakmicenje rezTak1, RezultatskoTakmicenje rezTak2, RezultatskoTakmicenje rezTak3, RezultatskoTakmicenje rezTak4) { // NOTE: Da bi Ekipa mogla da se koristi kao key u Dictionary, mora da implementira // interfejs IEquatable<Ekipa>. IDictionary <Ekipa, RezultatEkipnoZbirViseKola> rezultatiMap = new Dictionary <Ekipa, RezultatEkipnoZbirViseKola>(); foreach (Ekipa e in rezTak.Takmicenje1.Ekipe) { RezultatEkipnoZbirViseKola rezultat = new RezultatEkipnoZbirViseKola(); rezultat.Ekipa = e; rezultatiMap.Add(e, rezultat); } foreach (RezultatEkipno r in rezTak1.Takmicenje1.PoredakEkipno.Rezultati) { if (rezultatiMap.ContainsKey(r.Ekipa)) { rezultatiMap[r.Ekipa].initPrvoKolo(r); } } foreach (RezultatEkipno r in rezTak2.Takmicenje1.PoredakEkipno.Rezultati) { if (rezultatiMap.ContainsKey(r.Ekipa)) { rezultatiMap[r.Ekipa].initDrugoKolo(r); } } if (rezTak3 != null) { foreach (RezultatEkipno r in rezTak3.Takmicenje1.PoredakEkipno.Rezultati) { if (rezultatiMap.ContainsKey(r.Ekipa)) { rezultatiMap[r.Ekipa].initTreceKolo(r); } } } if (rezTak4 != null) { foreach (RezultatEkipno r in rezTak4.Takmicenje1.PoredakEkipno.Rezultati) { if (rezultatiMap.ContainsKey(r.Ekipa)) { rezultatiMap[r.Ekipa].initCetvrtoKolo(r); } } } Rezultati.Clear(); foreach (RezultatEkipnoZbirViseKola r in rezultatiMap.Values) { r.calculateTotal(); Rezultati.Add(r); } rankRezultati(); }
public virtual void deleteEkipa(Ekipa e, RezultatskoTakmicenje rezTak) { RezultatEkipnoZbirViseKola r = getRezultat(e); if (r != null) { Rezultati.Remove(r); 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 RezultatEkipnoZbirViseKola r = new RezultatEkipnoZbirViseKola(); r.loadFromDump(reader, map); Rezultati.Add(r); } }
public virtual void addEkipa(Ekipa e, RezultatskoTakmicenje rezTak, RezultatskoTakmicenje rezTak1, RezultatskoTakmicenje rezTak2, RezultatskoTakmicenje rezTak3, RezultatskoTakmicenje rezTak4) { RezultatEkipnoZbirViseKola rezultat = new RezultatEkipnoZbirViseKola(); rezultat.Ekipa = e; foreach (RezultatEkipno r in rezTak1.Takmicenje1.PoredakEkipno.Rezultati) { if (r.Ekipa.Equals(e)) { rezultat.initPrvoKolo(r); break; } } foreach (RezultatEkipno r in rezTak2.Takmicenje1.PoredakEkipno.Rezultati) { if (r.Ekipa.Equals(e)) { rezultat.initDrugoKolo(r); break; } } if (rezTak3 != null) { foreach (RezultatEkipno r in rezTak3.Takmicenje1.PoredakEkipno.Rezultati) { if (r.Ekipa.Equals(e)) { rezultat.initTreceKolo(r); break; } } } if (rezTak4 != null) { foreach (RezultatEkipno r in rezTak4.Takmicenje1.PoredakEkipno.Rezultati) { if (r.Ekipa.Equals(e)) { rezultat.initCetvrtoKolo(r); break; } } } rezultat.calculateTotal(); Rezultati.Add(rezultat); rankRezultati(); }
public virtual void create(RezultatskoTakmicenje rezTak, PoredakEkipno poredakPrvoKolo, PoredakEkipno poredakDrugoKolo, PoredakEkipno poredakTreceKolo, PoredakEkipno poredakCetvrtoKolo) { 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, RezultatEkipnoZbirViseKola> rezultatiMap = new Dictionary<Ekipa, RezultatEkipnoZbirViseKola>(); foreach (Ekipa e in ekipe) { RezultatEkipnoZbirViseKola rezultat = new RezultatEkipnoZbirViseKola(); 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; } } } if (poredakTreceKolo != null) { foreach (RezultatEkipno r in poredakTreceKolo.Rezultati) { if (rezultatiMap.ContainsKey(r.Ekipa)) { rezultatiMap[r.Ekipa].ParterTreceKolo = r.Parter; rezultatiMap[r.Ekipa].KonjTreceKolo = r.Konj; rezultatiMap[r.Ekipa].KarikeTreceKolo = r.Karike; rezultatiMap[r.Ekipa].PreskokTreceKolo = r.Preskok; rezultatiMap[r.Ekipa].RazbojTreceKolo = r.Razboj; rezultatiMap[r.Ekipa].VratiloTreceKolo = r.Vratilo; rezultatiMap[r.Ekipa].DvovisinskiRazbojTreceKolo = r.DvovisinskiRazboj; rezultatiMap[r.Ekipa].GredaTreceKolo = r.Greda; rezultatiMap[r.Ekipa].TotalTreceKolo = r.Total; } } } if (poredakCetvrtoKolo != null) { foreach (RezultatEkipno r in poredakCetvrtoKolo.Rezultati) { if (rezultatiMap.ContainsKey(r.Ekipa)) { rezultatiMap[r.Ekipa].ParterCetvrtoKolo = r.Parter; rezultatiMap[r.Ekipa].KonjCetvrtoKolo = r.Konj; rezultatiMap[r.Ekipa].KarikeCetvrtoKolo = r.Karike; rezultatiMap[r.Ekipa].PreskokCetvrtoKolo = r.Preskok; rezultatiMap[r.Ekipa].RazbojCetvrtoKolo = r.Razboj; rezultatiMap[r.Ekipa].VratiloCetvrtoKolo = r.Vratilo; rezultatiMap[r.Ekipa].DvovisinskiRazbojCetvrtoKolo = r.DvovisinskiRazboj; rezultatiMap[r.Ekipa].GredaCetvrtoKolo = r.Greda; rezultatiMap[r.Ekipa].TotalCetvrtoKolo = r.Total; } } } List<RezultatEkipnoZbirViseKola> rezultati = new List<RezultatEkipnoZbirViseKola>(rezultatiMap.Values); Rezultati.Clear(); foreach (RezultatEkipnoZbirViseKola 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 (RezultatEkipnoZbirViseKola 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.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; } }*/ total = total1 + total2 + total3 + total4; rez.setTotal(total); } rankRezultati(); }