private void updateUIFromPropozicije(Propozicije propozicije) { disableHandlers(); clearUI(); ckbPostojiTak2.Checked = propozicije.PostojiTak2; if (propozicije.PostojiTak2) { rbtOdvojenoTak2.Checked = propozicije.OdvojenoTak2; rbtNaOsnovuTak1.Checked = !propozicije.OdvojenoTak2; rbtPrviPreskok.Checked = !propozicije.ZaPreskokVisebojRacunajBoljuOcenu; rbtBoljiPreskok.Checked = propozicije.ZaPreskokVisebojRacunajBoljuOcenu; if (propozicije.OdvojenoTak2) { txtBrojFinalista.Text = propozicije.BrojFinalistaTak2.ToString(); txtBrojRezervi.Text = propozicije.BrojRezerviTak2.ToString(); ckbNeogranicenBrojTak.Checked = propozicije.NeogranicenBrojTakmicaraIzKlubaTak2; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak2) { txtMaxTak.Text = propozicije.MaxBrojTakmicaraIzKlubaTak2.ToString(); rbtDrzava.Checked = propozicije.MaxBrojTakmicaraTak2VaziZaDrzavu; } } } enableHandlers(); setEnabled(); }
public Takmicenje2Page(Propozicije propozicije, IList <Propozicije> dependentPropozicije) { InitializeComponent(); this.propozicije = propozicije; this.dependentPropozicije = dependentPropozicije; }
private void updateUIFromPropozicije(Propozicije propozicije) { disableHandlers(); clearUI(); ckbPostojiTak4.Checked = propozicije.PostojiTak4; if (propozicije.PostojiTak4) { rbtOdvojenoTak4.Checked = propozicije.OdvojenoTak4; rbtNaOsnovuPrvogIDrugogKola.Checked = !propozicije.OdvojenoTak4; rbtPostojiTak4ZaSvakuKategoriju.Checked = !propozicije.JednoTak4ZaSveKategorije; rbtJednoTak4ZaSveKategorije.Checked = propozicije.JednoTak4ZaSveKategorije; rbtFinalnaOcenaJeMax.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak4 == NacinRacunanjaOceneFinaleKupa.Max; rbtFinalnaOcenaJeZbir.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak4 == NacinRacunanjaOceneFinaleKupa.Zbir; rbtFinalnaOcenaJeProsek.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak4 == NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene || propozicije.NacinRacunanjaOceneFinaleKupaTak4 == NacinRacunanjaOceneFinaleKupa.ProsekUvek; ckbNeRacunajProsek.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak4 == NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene; if (propozicije.OdvojenoTak4) { txtBrojEkipa.Text = propozicije.BrojEkipaUFinalu.ToString(); txtBrojRezultata.Text = propozicije.BrojRezultataKojiSeBodujuZaEkipu.ToString(); } } enableHandlers(); setEnabled(); }
private void updatePropozicijeFromUI(Propozicije propozicije) { propozicije.PostojiTak4 = ckbPostojiTak4.Checked; if (propozicije.PostojiTak4) { propozicije.OdvojenoTak4 = rbtOdvojenoTak4.Checked; propozicije.JednoTak4ZaSveKategorije = rbtJednoTak4ZaSveKategorije.Checked; if (rbtFinalnaOcenaJeMax.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak4 = NacinRacunanjaOceneFinaleKupa.Max; } else if (rbtFinalnaOcenaJeZbir.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak4 = NacinRacunanjaOceneFinaleKupa.Zbir; } else if (rbtFinalnaOcenaJeProsek.Checked) { if (ckbNeRacunajProsek.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak4 = NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene; } else { propozicije.NacinRacunanjaOceneFinaleKupaTak4 = NacinRacunanjaOceneFinaleKupa.ProsekUvek; } } if (propozicije.OdvojenoTak4) { propozicije.BrojEkipaUFinalu = byte.Parse(txtBrojEkipa.Text); propozicije.BrojRezultataKojiSeBodujuZaEkipu = byte.Parse(txtBrojRezultata.Text); } } }
private Propozicije createPropozicije() { Propozicije result = new Propozicije(); result.PostojiTak2 = true; result.OdvojenoTak2 = true; result.NeogranicenBrojTakmicaraIzKlubaTak2 = false; result.MaxBrojTakmicaraIzKlubaTak2 = 2; result.MaxBrojTakmicaraTak2VaziZaDrzavu = true; result.BrojFinalistaTak2 = 24; result.BrojRezerviTak2 = 4; result.PostojiTak3 = true; result.OdvojenoTak3 = true; result.NeogranicenBrojTakmicaraIzKlubaTak3 = false; result.MaxBrojTakmicaraIzKlubaTak3 = 2; result.MaxBrojTakmicaraTak3VaziZaDrzavu = true; result.BrojFinalistaTak3 = 8; result.BrojRezerviTak3 = 3; result.Tak1PreskokNaOsnovuObaPreskoka = true; result.Tak3PreskokNaOsnovuObaPreskoka = true; result.PostojiTak4 = false; result.OdvojenoTak4 = false; result.BrojRezultataKojiSeBodujuZaEkipu = 0; result.BrojEkipaUFinalu = 0; return(result); }
private void updatePropozicijeFromUI(Propozicije propozicije) { propozicije.PostojiTak3 = ckbPostojiTak3.Checked; if (!propozicije.PostojiTak3) { // NOTE: Cak i ako se izabere da ne postoji takmicenje 3, rezultati ce se prikazivati. Proizvoljno sam // izabrao da se tada preskok racuna na osnovu prvog preskoka propozicije.Tak1PreskokNaOsnovuObaPreskoka = false; } else { propozicije.OdvojenoTak3 = rbtOdvojenoTak3.Checked; propozicije.VecaEOcenaImaPrednost = rbtPrednostImaVecaEOcena.Checked; if (!propozicije.OdvojenoTak3) { propozicije.Tak1PreskokNaOsnovuObaPreskoka = rbtKvalPreskok2.Checked; } else { propozicije.BrojFinalistaTak3 = byte.Parse(txtBrojFinalista.Text); propozicije.BrojRezerviTak3 = byte.Parse(txtBrojRezervi.Text); propozicije.NeogranicenBrojTakmicaraIzKlubaTak3 = ckbNeogranicenBrojTak.Checked; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak3) { propozicije.MaxBrojTakmicaraIzKlubaTak3 = byte.Parse(txtMaxTak.Text); propozicije.MaxBrojTakmicaraTak3VaziZaDrzavu = rbtDrzava.Checked; } propozicije.Tak1PreskokNaOsnovuObaPreskoka = rbtKvalPreskok2.Checked; propozicije.Tak3PreskokNaOsnovuObaPreskoka = rbtPoredakPreskok2.Checked; } } }
private void updatePropozicijeFromUI(Propozicije propozicije) { propozicije.PostojiTak4 = ckbPostojiTak4.Checked; if (propozicije.PostojiTak4) { propozicije.OdvojenoTak4 = rbtOdvojenoTak4.Checked; propozicije.JednoTak4ZaSveKategorije = rbtJednoTak4ZaSveKategorije.Checked; propozicije.BrojRezultataKojiSeBodujuZaEkipu = byte.Parse(txtBrojRezultata.Text); if (propozicije.OdvojenoTak4) { propozicije.BrojEkipaUFinalu = byte.Parse(txtBrojEkipa.Text); } } }
private void updateUIFromPropozicije(Propozicije propozicije) { disableHandlers(); clearUI(); ckbPostojiTak3.Checked = propozicije.PostojiTak3; // Nek ovo bude uvek selektovano rbtGimnasticariDelePlasman.Checked = !propozicije.VecaEOcenaImaPrednost; rbtPrednostImaVecaEOcena.Checked = propozicije.VecaEOcenaImaPrednost; if (propozicije.PostojiTak3) { rbtOdvojenoTak3.Checked = propozicije.OdvojenoTak3; rbtNaOsnovuPrvogIDrugogKola.Checked = !propozicije.OdvojenoTak3; rbtFinalnaOcenaJeMax.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak3 == NacinRacunanjaOceneFinaleKupa.Max; rbtFinalnaOcenaJeZbir.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak3 == NacinRacunanjaOceneFinaleKupa.Zbir; rbtFinalnaOcenaJeProsek.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak3 == NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene || propozicije.NacinRacunanjaOceneFinaleKupaTak3 == NacinRacunanjaOceneFinaleKupa.ProsekUvek; ckbNeRacunajProsek.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak3 == NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene; if (propozicije.OdvojenoTak3) { txtBrojFinalista.Text = propozicije.BrojFinalistaTak3.ToString(); txtBrojRezervi.Text = propozicije.BrojRezerviTak3.ToString(); ckbNeogranicenBrojTak.Checked = propozicije.NeogranicenBrojTakmicaraIzKlubaTak3; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak3) { txtMaxTak.Text = propozicije.MaxBrojTakmicaraIzKlubaTak3.ToString(); rbtDrzava.Checked = propozicije.MaxBrojTakmicaraTak3VaziZaDrzavu; } rbtPoredakPreskok1.Checked = !propozicije.Tak1PreskokNaOsnovuObaPreskoka; rbtPoredakPreskok2.Checked = propozicije.Tak1PreskokNaOsnovuObaPreskoka; } } enableHandlers(); setEnabled(); }
// TODO: Postoji dosta slicnosti u unosenju propozicija izmedju takmicenja 2, 3 i 4 (kako obicno takmicenje tako i // finale kupa). Probaj da nekako generalizujes. Npr. u requiredFieldsAndFormatValidation ima dosta ponavljanja. private void updatePropozicijeFromUI(Propozicije propozicije) { propozicije.PostojiTak3 = ckbPostojiTak3.Checked; if (propozicije.PostojiTak3) { propozicije.OdvojenoTak3 = rbtOdvojenoTak3.Checked; if (rbtFinalnaOcenaJeMax.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak3 = NacinRacunanjaOceneFinaleKupa.Max; } else if (rbtFinalnaOcenaJeZbir.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak3 = NacinRacunanjaOceneFinaleKupa.Zbir; } else if (rbtFinalnaOcenaJeProsek.Checked) { if (ckbNeRacunajProsek.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak3 = NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene; } else { propozicije.NacinRacunanjaOceneFinaleKupaTak3 = NacinRacunanjaOceneFinaleKupa.ProsekUvek; } } if (propozicije.OdvojenoTak3) { propozicije.BrojFinalistaTak3 = byte.Parse(txtBrojFinalista.Text); propozicije.BrojRezerviTak3 = byte.Parse(txtBrojRezervi.Text); propozicije.NeogranicenBrojTakmicaraIzKlubaTak3 = ckbNeogranicenBrojTak.Checked; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak3) { propozicije.MaxBrojTakmicaraIzKlubaTak3 = byte.Parse(txtMaxTak.Text); propozicije.MaxBrojTakmicaraTak3VaziZaDrzavu = rbtDrzava.Checked; } propozicije.Tak1PreskokNaOsnovuObaPreskoka = rbtPoredakPreskok2.Checked; propozicije.VecaEOcenaImaPrednost = rbtPrednostImaVecaEOcena.Checked; } } }
private void updateUIFromPropozicije(Propozicije propozicije) { disableHandlers(); clearUI(); ckbPostojiTak3.Checked = propozicije.PostojiTak3; // Nek ovo bude uvek selektovano rbtGimnasticariDelePlasman.Checked = !propozicije.VecaEOcenaImaPrednost; rbtPrednostImaVecaEOcena.Checked = propozicije.VecaEOcenaImaPrednost; if (propozicije.PostojiTak3) { rbtOdvojenoTak3.Checked = propozicije.OdvojenoTak3; rbtNaOsnovuTak1.Checked = !propozicije.OdvojenoTak3; if (!propozicije.OdvojenoTak3) { rbtKvalPreskok1.Checked = !propozicije.Tak1PreskokNaOsnovuObaPreskoka; rbtKvalPreskok2.Checked = propozicije.Tak1PreskokNaOsnovuObaPreskoka; } else { txtBrojFinalista.Text = propozicije.BrojFinalistaTak3.ToString(); txtBrojRezervi.Text = propozicije.BrojRezerviTak3.ToString(); ckbNeogranicenBrojTak.Checked = propozicije.NeogranicenBrojTakmicaraIzKlubaTak3; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak3) { txtMaxTak.Text = propozicije.MaxBrojTakmicaraIzKlubaTak3.ToString(); rbtDrzava.Checked = propozicije.MaxBrojTakmicaraTak3VaziZaDrzavu; } rbtKvalPreskok1.Checked = !propozicije.Tak1PreskokNaOsnovuObaPreskoka; rbtKvalPreskok2.Checked = propozicije.Tak1PreskokNaOsnovuObaPreskoka; rbtPoredakPreskok1.Checked = !propozicije.Tak3PreskokNaOsnovuObaPreskoka; rbtPoredakPreskok2.Checked = propozicije.Tak3PreskokNaOsnovuObaPreskoka; } } enableHandlers(); setEnabled(); }
private void updatePropozicijeFromUI(Propozicije propozicije) { propozicije.PostojiTak2 = ckbPostojiTak2.Checked; if (propozicije.PostojiTak2) { propozicije.OdvojenoTak2 = rbtOdvojenoTak2.Checked; propozicije.ZaPreskokVisebojRacunajBoljuOcenu = rbtBoljiPreskok.Checked; if (propozicije.OdvojenoTak2) { propozicije.BrojFinalistaTak2 = byte.Parse(txtBrojFinalista.Text); propozicije.BrojRezerviTak2 = byte.Parse(txtBrojRezervi.Text); propozicije.NeogranicenBrojTakmicaraIzKlubaTak2 = ckbNeogranicenBrojTak.Checked; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak2) { propozicije.MaxBrojTakmicaraIzKlubaTak2 = byte.Parse(txtMaxTak.Text); propozicije.MaxBrojTakmicaraTak2VaziZaDrzavu = rbtDrzava.Checked; } } } }
private void updatePropozicijeFromUI(Propozicije propozicije) { propozicije.PostojiTak2 = ckbPostojiTak2.Checked; if (propozicije.PostojiTak2) { propozicije.OdvojenoTak2 = rbtOdvojenoTak2.Checked; if (rbtFinalnaOcenaJeMax.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak2 = NacinRacunanjaOceneFinaleKupa.Max; } else if (rbtFinalnaOcenaJeZbir.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak2 = NacinRacunanjaOceneFinaleKupa.Zbir; } else if (rbtFinalnaOcenaJeProsek.Checked) { if (ckbNeRacunajProsek.Checked) { propozicije.NacinRacunanjaOceneFinaleKupaTak2 = NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene; } else { propozicije.NacinRacunanjaOceneFinaleKupaTak2 = NacinRacunanjaOceneFinaleKupa.ProsekUvek; } } if (propozicije.OdvojenoTak2) { propozicije.BrojFinalistaTak2 = byte.Parse(txtBrojFinalista.Text); propozicije.BrojRezerviTak2 = byte.Parse(txtBrojRezervi.Text); propozicije.NeogranicenBrojTakmicaraIzKlubaTak2 = ckbNeogranicenBrojTak.Checked; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak2) { propozicije.MaxBrojTakmicaraIzKlubaTak2 = byte.Parse(txtMaxTak.Text); } } } }
private void updateUIFromPropozicije(Propozicije propozicije) { disableHandlers(); clearUI(); ckbPostojiTak2.Checked = propozicije.PostojiTak2; if (propozicije.PostojiTak2) { rbtOdvojenoTak2.Checked = propozicije.OdvojenoTak2; rbtNaOsnovuPrvogIDrugogKola.Checked = !propozicije.OdvojenoTak2; rbtFinalnaOcenaJeMax.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak2 == NacinRacunanjaOceneFinaleKupa.Max; rbtFinalnaOcenaJeZbir.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak2 == NacinRacunanjaOceneFinaleKupa.Zbir; rbtFinalnaOcenaJeProsek.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak2 == NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene || propozicije.NacinRacunanjaOceneFinaleKupaTak2 == NacinRacunanjaOceneFinaleKupa.ProsekUvek; ckbNeRacunajProsek.Checked = propozicije.NacinRacunanjaOceneFinaleKupaTak2 == NacinRacunanjaOceneFinaleKupa.ProsekSamoAkoPostojeObeOcene; if (propozicije.OdvojenoTak2) { txtBrojFinalista.Text = propozicije.BrojFinalistaTak2.ToString(); txtBrojRezervi.Text = propozicije.BrojRezerviTak2.ToString(); ckbNeogranicenBrojTak.Checked = propozicije.NeogranicenBrojTakmicaraIzKlubaTak2; if (!propozicije.NeogranicenBrojTakmicaraIzKlubaTak2) { txtMaxTak.Text = propozicije.MaxBrojTakmicaraIzKlubaTak2.ToString(); } } } enableHandlers(); setEnabled(); }
private void updateUIFromPropozicije(Propozicije propozicije) { disableHandlers(); clearUI(); ckbPostojiTak4.Checked = propozicije.PostojiTak4; if (propozicije.PostojiTak4) { rbtOdvojenoTak4.Checked = propozicije.OdvojenoTak4; rbtNaOsnovuTak1.Checked = !propozicije.OdvojenoTak4; rbtPostojiTak4ZaSvakuKategoriju.Checked = !propozicije.JednoTak4ZaSveKategorije; rbtJednoTak4ZaSveKategorije.Checked = propozicije.JednoTak4ZaSveKategorije; txtBrojRezultata.Text = propozicije.BrojRezultataKojiSeBodujuZaEkipu.ToString(); if (propozicije.OdvojenoTak4) { txtBrojEkipa.Text = propozicije.BrojEkipaUFinalu.ToString(); } } enableHandlers(); setEnabled(); }
public static void kreirajNaOsnovuViseKola(Takmicenje takmicenje, IList <KeyValuePair <GimnasticarUcesnik, IList <Pair <int, TakmicarskaKategorija> > > > razlicitaKola) { TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); takmicenjeDAO.Attach(takmicenje, false); List <Takmicenje> prethodnaKola = new List <Takmicenje>(); prethodnaKola.Add(takmicenje.PrvoKolo); prethodnaKola.Add(takmicenje.DrugoKolo); if (takmicenje.TreceKolo != null) { prethodnaKola.Add(takmicenje.TreceKolo); } if (takmicenje.CetvrtoKolo != null) { prethodnaKola.Add(takmicenje.CetvrtoKolo); } RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); List <IList <RezultatskoTakmicenje> > rezTakmicenjaPrethodnaKola = new List <IList <RezultatskoTakmicenje> >(); foreach (Takmicenje prethKolo in prethodnaKola) { rezTakmicenjaPrethodnaKola.Add(rezTakDAO.FindByTakmicenje(prethKolo.Id)); } takmicenje.Kategorije.Clear(); foreach (RezultatskoTakmicenje rt in rezTakmicenjaPrethodnaKola[0]) { // Implementiran je najjednostavniji slucaj, gde se u svakom od prethodnih kola gleda samo prvo // takmicenje, i uzimaju se samo one kategorije gde postoji poklapanje. U principu, mogla bi se // implementirati i slozenija varijanta gde bi se, u slucaju da ne postoji poklapanje medju kategorijama, // otvorio prozor gde bi mogle da se uparuju kategorije, ali onda bi morao da nekako pamtim // koja su uparivanja izabrana (da bi ih primenio kod apdejtovanja kada se npr. ocena iz nekog od // prethodnih kola promeni). if (rt.TakmicenjeDescription.RedBroj != 0) { continue; } bool ok = true; foreach (List <RezultatskoTakmicenje> rezTakList in rezTakmicenjaPrethodnaKola) { if (Takmicenje.getRezTakmicenje(rezTakList, 0, rt.Kategorija) == null) { ok = false; break; } } if (ok) { takmicenje.addKategorija(new TakmicarskaKategorija(rt.Kategorija.Naziv)); } } if (takmicenje.Kategorije.Count == 0) { throw new BusinessException("Kategorije iz prethodnih kola se ne poklapaju"); } // prvi description je uvek kao naziv takmicenja. takmicenje.TakmicenjeDescriptions.Clear(); RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = takmicenje.Naziv; desc.Propozicije = new Propozicije(true, takmicenje.FinaleKupa, true); takmicenje.addTakmicenjeDescription(desc); // Takmicenje dodajem ovako rano zato sto se takmicenje.Id koristi dole u createGimnasticarUcesnik takmicenjeDAO.Add(takmicenje); IList <RezultatskoTakmicenje> rezTakmicenja = new List <RezultatskoTakmicenje>(); foreach (TakmicarskaKategorija k in takmicenje.Kategorije) { Propozicije p = new Propozicije(true, takmicenje.FinaleKupa, true); RezultatskoTakmicenje rt = new RezultatskoTakmicenje(takmicenje, k, desc, p); rt.ImaEkipnoTakmicenje = true; rt.KombinovanoEkipnoTak = false; rezTakmicenja.Add(rt); } GimnasticarUcesnikDAO gimUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO(); EkipaDAO ekipaDAO = DAOFactoryFactory.DAOFactory.GetEkipaDAO(); // Za svakog gimnasticara, zapamti u kojim kategorijama je ucestvovao u prethodnim kolima IDictionary <GimnasticarUcesnik, IList <Pair <int, TakmicarskaKategorija> > > mapaUcestvovanja = new Dictionary <GimnasticarUcesnik, IList <Pair <int, TakmicarskaKategorija> > >(); IDictionary <TakmicarskaKategorija, RezultatskoTakmicenje> katToRezTakMap = new Dictionary <TakmicarskaKategorija, RezultatskoTakmicenje>(); foreach (RezultatskoTakmicenje rt in rezTakmicenja) { katToRezTakMap.Add(rt.Kategorija, rt); for (int i = 0; i < rezTakmicenjaPrethodnaKola.Count; ++i) { IList <RezultatskoTakmicenje> rezTakmicenjaPrethKolo = rezTakmicenjaPrethodnaKola[i]; RezultatskoTakmicenje rtFrom = Takmicenje.getRezTakmicenje(rezTakmicenjaPrethKolo, 0, rt.Kategorija); Pair <int, TakmicarskaKategorija> koloKatPair = new Pair <int, TakmicarskaKategorija>(i, rt.Kategorija); foreach (GimnasticarUcesnik g in rtFrom.Takmicenje1.Gimnasticari) { if (!mapaUcestvovanja.ContainsKey(g)) { // Koriscenje IDictionary obezbedjuje da je svaki gimnasticar dodat u samo jednu kategoriju. GimnasticarUcesnik g2 = GimnasticarUcesnikService.createGimnasticarUcesnik(g, rt.Kategorija); IList <Pair <int, TakmicarskaKategorija> > pairList = new List <Pair <int, TakmicarskaKategorija> >(); pairList.Add(koloKatPair); mapaUcestvovanja.Add(g2, pairList); gimUcesnikDAO.Add(g2); } else { mapaUcestvovanja[g].Add(koloKatPair); } } } } foreach (KeyValuePair <GimnasticarUcesnik, IList <Pair <int, TakmicarskaKategorija> > > entry in mapaUcestvovanja) { GimnasticarUcesnik g = entry.Key; TakmicarskaKategorija prevKat = null; bool ok = true; foreach (Pair <int, TakmicarskaKategorija> koloKatPair in entry.Value) { TakmicarskaKategorija kat = koloKatPair.Second; if (prevKat == null) { prevKat = kat; } else if (!kat.Equals(prevKat)) { ok = false; } RezultatskoTakmicenje rt = katToRezTakMap[kat]; rt.Takmicenje1.addGimnasticar(g); } if (!ok) { razlicitaKola.Add(entry); } } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { foreach (List <RezultatskoTakmicenje> rezTakmicenjaPrethKolo in rezTakmicenjaPrethodnaKola) { RezultatskoTakmicenje rtFrom = Takmicenje.getRezTakmicenje(rezTakmicenjaPrethKolo, 0, rt.Kategorija); foreach (Ekipa e in rtFrom.Takmicenje1.Ekipe) { if (rt.Takmicenje1.Ekipe.Contains(e)) { continue; } Ekipa ekipa = new Ekipa(); ekipa.Naziv = e.Naziv; ekipa.Kod = e.Kod; rt.Takmicenje1.addEkipa(ekipa, false); ekipaDAO.Add(ekipa); } } } // TODO: Prebaci u domenske klase sto vise koda iz ove funkcije (isto i u funkciji updateViseKola). takmicenje.kreirajRezultateViseKola(rezTakmicenja, rezTakmicenjaPrethodnaKola); foreach (List <RezultatskoTakmicenje> rezTakmicenjaPrethKolo in rezTakmicenjaPrethodnaKola) { foreach (RezultatskoTakmicenje rt in rezTakmicenjaPrethKolo) { rezTakDAO.Evict(rt); } } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { rezTakDAO.Add(rt); } }