public virtual void addEkipa(Ekipa e, IList<Ocena> ocene, RezultatskoTakmicenje rezTak) { /* RezultatEkipno r = new RezultatEkipno(); r.Ekipa = e; Rezultati.Add(r); foreach (Ocena o in ocene) { if (e.Gimnasticari.Contains(o.Gimnasticar)) r.addOcena(o); } rankRezultati(); updateKvalStatus(rezTak.Propozicije); */ }
public virtual void ekipaDeleted(Ekipa e, RezultatskoTakmicenje rezTak) { PoredakEkipno.deleteEkipa(e, rezTak); }
public virtual void ekipaAdded(Ekipa e, IList<Ocena> ocene, RezultatskoTakmicenje rezTak) { PoredakEkipno.addEkipa(e, ocene, rezTak); }
public virtual bool canAddEkipa(Ekipa ekipa) { try { checkAdd(ekipa); return true; } catch (BusinessException) { return false; } }
public virtual void addEkipa(Ekipa ekipa) { checkAdd(ekipa); Ekipe.Add(ekipa); }
private void setRezultatiUkupno(Ekipa e) { dataGridViewUserControl2.setItems<RezultatUkupno>(e.getRezultatiUkupno(sviRezultatiUkupno)); dataGridViewUserControl2.sort<RezultatUkupno>("PrezimeIme", ListSortDirection.Ascending); }
public static List <RezultatUkupno> findRezultatiUkupnoForEkipa(int takmicenjeId, Ekipa e) { List <RezultatUkupno> result = new List <RezultatUkupno>(); RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); foreach (GimnasticarUcesnik g in e.Gimnasticari) { result.Add(Takmicenje.getRezultatUkupnoForEkipniRezultat( g, rezTakDAO.FindRezultatiUkupnoForGimnasticar(takmicenjeId, g.Id))); } return(result); }
private void checkAdd(Ekipa ekipa) { if (existsEkipaNaziv(ekipa.Naziv)) throw new BusinessException("Naziv", "Ekipa sa datim nazivom vec postoji."); if (existsEkipaKod(ekipa.Kod)) throw new BusinessException("Kod", "Ekipa sa datim kodom vec postoji."); }
void cloneTakmicenje(Takmicenje takmicenje, Takmicenje from, List<RezultatskoTakmicenjeDescription> descriptionsFrom, List<TakmicarskaKategorija> kategorijeFrom) { dataContext.Attach(takmicenje, false); dataContext.Attach(from, false); foreach (RezultatskoTakmicenjeDescription d in descriptionsFrom) { dataContext.Attach(d, false); } // TODO3: Ovaj metod bi trebalo updateovati svaki put kada se promene neka svojstva koja se kloniraju. takmicenje.BrojEOcena = from.BrojEOcena; takmicenje.BrojDecimalaD = from.BrojDecimalaD; takmicenje.BrojDecimalaE1 = from.BrojDecimalaE1; takmicenje.BrojDecimalaE = from.BrojDecimalaE; takmicenje.BrojDecimalaPen = from.BrojDecimalaPen; takmicenje.BrojDecimalaTotal = from.BrojDecimalaTotal; takmicenje.ZavrsenoTak1 = false; // TODO: Kreiraj metod u klasi TakmicarskaKategorija koji vraca kategorije sortirane po rednom broju. // Pronadji sva mesta na kojima sortiram kategorije po rednom broju, i zameni ih pozivom novog metoda. // Uradi isto i za klasu RezultatskoTakmicenjeDescription, a i za druge ako postoje. PropertyDescriptor propDesc = TypeDescriptor.GetProperties(typeof(TakmicarskaKategorija))["RedBroj"]; kategorijeFrom.Sort(new SortComparer<TakmicarskaKategorija>( propDesc, ListSortDirection.Ascending)); foreach (TakmicarskaKategorija k in kategorijeFrom) { takmicenje.addKategorija(new TakmicarskaKategorija(k.Naziv, takmicenje.Gimnastika)); } PropertyDescriptor propDesc2 = TypeDescriptor.GetProperties(typeof(RezultatskoTakmicenjeDescription))["RedBroj"]; descriptionsFrom.Sort(new SortComparer<RezultatskoTakmicenjeDescription>( propDesc2, ListSortDirection.Ascending)); // prvi description je uvek kao naziv takmicenja. RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = takmicenje.Naziv; desc.Propozicije = new Propozicije(); takmicenje.addTakmicenjeDescription(desc); for (int i = 1; i < descriptionsFrom.Count; i++) { desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = descriptionsFrom[i].Naziv; desc.Propozicije = new Propozicije(); takmicenje.addTakmicenjeDescription(desc); } IList<RezultatskoTakmicenje> rezTakmicenja = new List<RezultatskoTakmicenje>(); foreach (RezultatskoTakmicenjeDescription d in takmicenje.TakmicenjeDescriptions) { foreach (TakmicarskaKategorija k in takmicenje.Kategorije) { RezultatskoTakmicenje rt = new RezultatskoTakmicenje(takmicenje, k, d, new Propozicije()); rezTakmicenja.Add(rt); } } List<RezultatskoTakmicenjeDescription> descriptions = new List<RezultatskoTakmicenjeDescription>(takmicenje.TakmicenjeDescriptions); propDesc = TypeDescriptor.GetProperties(typeof(RezultatskoTakmicenjeDescription))["RedBroj"]; descriptions.Sort(new SortComparer<RezultatskoTakmicenjeDescription>( propDesc, ListSortDirection.Ascending)); for (int i = 0; i < descriptions.Count; i++) { clonePropozicije(descriptions[i].Propozicije, descriptionsFrom[i].Propozicije); } IList<RezultatskoTakmicenje> rezTakmicenjaFrom = new List<RezultatskoTakmicenje>(); foreach (RezultatskoTakmicenje rt in loadRezTakmicenja(from.Id)) { // filtriraj rez. takmicenja. ISet<TakmicarskaKategorija> katFromSet = new HashSet<TakmicarskaKategorija>(kategorijeFrom); ISet<RezultatskoTakmicenjeDescription> descFromSet = new HashSet<RezultatskoTakmicenjeDescription>(descriptionsFrom); if (katFromSet.Contains(rt.Kategorija) && descFromSet.Contains(rt.TakmicenjeDescription)) { rezTakmicenjaFrom.Add(rt); } } foreach (RezultatskoTakmicenje rezTak in rezTakmicenja) { RezultatskoTakmicenje rezTak2 = findRezTakmicenje(rezTakmicenjaFrom, rezTak.TakmicenjeDescription.Naziv, rezTak.Kategorija); clonePropozicije(rezTak.Propozicije, rezTak2.Propozicije); } bool kombAdded = false; foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (!rt.TakmicenjeDescription.Propozicije.JednoTak4ZaSveKategorije) { rt.ImaEkipnoTakmicenje = true; rt.KombinovanoEkipnoTak = false; } else { if (!kombAdded) { rt.ImaEkipnoTakmicenje = true; rt.KombinovanoEkipnoTak = true; kombAdded = true; } else { rt.ImaEkipnoTakmicenje = false; rt.KombinovanoEkipnoTak = false; } } } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { bool deletedTak2, deletedTak3, deletedTak4; rt.updateTakmicenjaFromChangedPropozicije( out deletedTak2, out deletedTak3, out deletedTak4); /*if (deletedTak2) dataContext.Delete(rt.Takmicenje2); if (deletedTak3) dataContext.Delete(rt.Takmicenje3); if (deletedTak4) dataContext.Delete(rt.Takmicenje4);*/ } IDictionary<GimnasticarUcesnik, GimnasticarUcesnik> gimnasticariMap = new Dictionary<GimnasticarUcesnik, GimnasticarUcesnik>(); List<GimnasticarUcesnik> dupliGimnasticari = new List<GimnasticarUcesnik>(); foreach (TakmicarskaKategorija kat in takmicenje.Kategorije) { foreach (GimnasticarUcesnik g in loadGimnasticari(from, kat.Naziv)) { if (!gimnasticariMap.ContainsKey(g)) { // Ovo proveravam zato sto se vec desilo da isti gimnasticar bude prijavljen u dve razlicite // kategorije (program to ne proverava). Npr. na takmicenju I KOLO PGL SRBIJE MSG od 21.05.2011. // Sinisa Jurkovic je bio prijavljen u dve kategorije. U novoj verziji programa nije moguce da // isti gimnsticar bude prijavljen u dve razlicite kategorije. GimnasticarUcesnik g2 = createGimnasticarUcesnik(g, kat); gimnasticariMap.Add(g2, g2); } else dupliGimnasticari.Add(g); } } // Proveravanje gimnasticara koji su prijavljeni u vise kategorija je samo za legacy baze. Program je vec // promenjen da ne dozvoljava da isti gimnasticar bude prijavljen u vise kategorija. foreach (GimnasticarUcesnik g in dupliGimnasticari) { if (gimnasticariMap.ContainsKey(g)) gimnasticariMap.Remove(g); } // TODO2: Izgleda da prikazuje rezultate za sprave u takmicenju I cak i kada se u propozicijama selektuje da // ne postoji takmicenje III. U stvari tako i treba zato sto ipak treba da postoji pregled nastupa po spravama // cak i kada se selektuje da ne postoji takmicenje III. Tako da ovo treba da ostane. foreach (RezultatskoTakmicenje rt in rezTakmicenja) { RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaFrom, rt.TakmicenjeDescription.Naziv, rt.Kategorija); foreach (GimnasticarUcesnik g in rtFrom.Takmicenje1.Gimnasticari) { if (gimnasticariMap.ContainsKey(g)) { GimnasticarUcesnik g2 = gimnasticariMap[g]; rt.Takmicenje1.addGimnasticar(g2); rt.Takmicenje1.gimnasticarAdded(g2, new List<Ocena>(), rt); } } } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaFrom, rt.TakmicenjeDescription.Naziv, rt.Kategorija); foreach (Ekipa e in rtFrom.Takmicenje1.Ekipe) { Ekipa ekipa = new Ekipa(); ekipa.Naziv = e.Naziv; ekipa.Kod = e.Kod; if (e.DrzavaUcesnik == null) ekipa.DrzavaUcesnik = null; else { DrzavaUcesnik drzavaUcesnik = findDrzavaUcesnik(takmicenje, e.DrzavaUcesnik.Naziv); if (drzavaUcesnik == null) { drzavaUcesnik = new DrzavaUcesnik(); drzavaUcesnik.Naziv = e.DrzavaUcesnik.Naziv; drzavaUcesnik.Kod = e.DrzavaUcesnik.Kod; drzavaUcesnik.Takmicenje = takmicenje; dataContext.Add(drzavaUcesnik); } ekipa.DrzavaUcesnik = drzavaUcesnik; } if (e.KlubUcesnik == null) ekipa.KlubUcesnik = null; else { KlubUcesnik klubUcesnik = findKlubUcesnik(takmicenje, e.KlubUcesnik.Naziv); if (klubUcesnik == null) { klubUcesnik = new KlubUcesnik(); klubUcesnik.Naziv = e.KlubUcesnik.Naziv; klubUcesnik.Kod = e.KlubUcesnik.Kod; klubUcesnik.Takmicenje = takmicenje; dataContext.Add(klubUcesnik); } ekipa.KlubUcesnik = klubUcesnik; } foreach (GimnasticarUcesnik g in e.Gimnasticari) { if (gimnasticariMap.ContainsKey(g)) { GimnasticarUcesnik g2 = gimnasticariMap[g]; ekipa.addGimnasticar(g2); } } rt.Takmicenje1.addEkipa(ekipa); } } dataContext.Add(takmicenje); foreach (RezultatskoTakmicenje rt in rezTakmicenja) { dataContext.Add(rt); foreach (Ekipa e in rt.Takmicenje1.Ekipe) dataContext.Add(e); } foreach (GimnasticarUcesnik g in gimnasticariMap.Values) { dataContext.Add(g); } if (dupliGimnasticari.Count > 0) { string msg = "Sledeci gimnasticari nisu dodati zato sto su prijavljeni u vise " + "kategorija. Ove gimnasticare morate da unesete rucno: \n\n"; msg += StringUtil.getListString(dupliGimnasticari.ToArray()); MessageDialogs.showMessage(msg, this.Text); } }
public Zapisnik_popup(int X, int Y, Ekipa ek) { InitializeComponent(); this.Location = new Point(X + 100, Y + 100); eki = ek; }
private RezultatEkipno getRezultat(Ekipa e) { foreach (RezultatEkipno r in Rezultati) { if (r.Ekipa.Equals(e)) return r; } return null; }
public virtual void gimnasticarDeletedFromEkipa(GimnasticarUcesnik g, Ekipa e, IList<Ocena> ocene, RezultatskoTakmicenje rezTak) { /* if (ocene.Count == 0) return; RezultatEkipno r = getRezultat(e); if (r != null) { foreach (Ocena o in ocene) r.removeOcena(o); rankRezultati(); updateKvalStatus(rezTak.Propozicije); } */ }
public virtual void deleteEkipa(Ekipa e, RezultatskoTakmicenje rezTak) { // Ovde je deo ostao otkometarisan zato sto mi je davao gresku kod brisanja ekipa. RezultatEkipno r = getRezultat(e); if (r != null) { Rezultati.Remove(r); //rankRezultati(); //updateKvalStatus(rezTak.Propozicije); } }
public ActionResult SpremiIzmjenuRezultataTakmicenjaEkipno(RezultatiTakmicenjaEkipnoUrediVM model) { Ekipa ekipa = ctx.Ekipa.Where(x => x.Id == model.EkipaId).FirstOrDefault(); ekipa.Naziv = model.NazivEkipe; ctx.SaveChanges(); List <ClanoviEkipe> clanoviEkipe = ctx.ClanoviEkipe.Where(x => x.EkipaId == ekipa.Id && x.isDeleted == false).ToList(); List <int> listaClanoviEkipeId = new List <int>(); for (int i = 0; i < clanoviEkipe.Count(); i++) { int takmicarId = clanoviEkipe[i].TakmicarId; listaClanoviEkipeId.Add(takmicarId); } for (int i = 0; i < model.clanoviEkipeId.Count(); i++) { int takmicarId = model.clanoviEkipeId[i]; if (!listaClanoviEkipeId.Contains(takmicarId)) { ClanoviEkipe clan = new ClanoviEkipe(); clan.isDeleted = false; clan.TakmicarId = model.clanoviEkipeId[i]; clan.EkipaId = ekipa.Id; ctx.ClanoviEkipe.Add(clan); ctx.SaveChanges(); } } List <int> odabraniClanoviEkipeId = new List <int>(); for (int i = 0; i < model.clanoviEkipeId.Count(); i++) { int takmicarId = model.clanoviEkipeId[i]; odabraniClanoviEkipeId.Add(takmicarId); } for (int i = 0; i < listaClanoviEkipeId.Count(); i++) { int takmicarId = listaClanoviEkipeId[i]; if (!odabraniClanoviEkipeId.Contains(takmicarId)) { ClanoviEkipe clan = ctx.ClanoviEkipe.Where(x => x.TakmicarId == takmicarId && x.isDeleted == false).FirstOrDefault(); if (clan != null) { clan.isDeleted = true; ctx.SaveChanges(); } } } RezultatiTakmicenjaEkipno rezultat = ctx.RezultatiTakmicenjaEkipno.Where(x => x.Id == model.Id).FirstOrDefault(); rezultat.OsvojenoMjestoNaTakmicenjuId = model.OsvojenoMjestoNaTakmicenjuId; rezultat.DisciplinaTakmicenjaId = model.DisciplinaTakmicenjaId; rezultat.BrojPobjeda = Convert.ToInt32(model.BrojPobjeda); rezultat.BrojPoraza = Convert.ToInt32(model.BrojPoraza); rezultat.Obrazlozenje = model.Obrazlozenje; rezultat.Kategorija = model.Kategorija; rezultat.BrojEkipaUKategoriji = Convert.ToInt32(model.BrojEkipaUKategoriji); rezultat.StarosnaDobId = model.StarosnaDobId; ctx.SaveChanges(); return(RedirectToAction("Index", "UpravljanjeRezultatimaTakmicenja", new { takmicenjeId = model.TakmicenjeId, brojTaba = 2 })); }
public virtual void gimnasticarDeletedFromEkipa(GimnasticarUcesnik g, Ekipa e, IList<Ocena> ocene, RezultatskoTakmicenje rezTak) { if (Ekipe.Contains(e)) PoredakEkipno.gimnasticarDeletedFromEkipa(g, e, ocene, rezTak); }
private bool kreirajZbirViseKola(Takmicenje takmicenje) { dataContext.Attach(takmicenje, false); List<List<TakmicarskaKategorija>> listaKategorija = new List<List<TakmicarskaKategorija>>(); if (takmicenje.PrvoKolo != null) { dataContext.Attach(takmicenje.PrvoKolo, false); listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.PrvoKolo.Kategorije)); } if (takmicenje.DrugoKolo != null) { dataContext.Attach(takmicenje.DrugoKolo, false); listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.DrugoKolo.Kategorije)); } if (takmicenje.TreceKolo != null) { dataContext.Attach(takmicenje.TreceKolo, false); listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.TreceKolo.Kategorije)); } if (takmicenje.CetvrtoKolo != null) { dataContext.Attach(takmicenje.CetvrtoKolo, false); listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.CetvrtoKolo.Kategorije)); } PropertyDescriptor propDesc = TypeDescriptor.GetProperties(typeof(TakmicarskaKategorija))["RedBroj"]; for (int i = 0; i < listaKategorija.Count; ++i) { listaKategorija[i].Sort(new SortComparer<TakmicarskaKategorija>( propDesc, ListSortDirection.Ascending)); } for (int i = 0; i < listaKategorija[0].Count; ++i) { TakmicarskaKategorija kat1 = listaKategorija[0][i]; for (int j = 0; j < listaKategorija.Count; ++j) { TakmicarskaKategorija kat2 = listaKategorija[j][i]; if (!kat1.Equals(kat2)) { // TODO3: Ovde bi ustvari trebalo proveravati da li se rezultatska takmicenja iz // prethodna cetiri kola poklapaju, i ako se ne poklapaju da se otvori prozor // gde ce korisnik moci da upari odgovarajuca rezultatska takmicenja (i da izabere // koja rez. takmicenja zeli da ukljuci u novo takmicenje). Slicno i za finale kupa. MessageBox.Show("Kategorije iz prethodnih kola se ne poklapaju", "Bilten"); return false; } } } foreach (TakmicarskaKategorija k in listaKategorija[0]) { takmicenje.addKategorija(new TakmicarskaKategorija(k.Naziv, takmicenje.Gimnastika)); } // prvi description je uvek kao naziv takmicenja. RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = takmicenje.Naziv; desc.Propozicije = new Propozicije(); takmicenje.addTakmicenjeDescription(desc); IList<RezultatskoTakmicenje> rezTakmicenja = new List<RezultatskoTakmicenje>(); foreach (RezultatskoTakmicenjeDescription d in takmicenje.TakmicenjeDescriptions) { foreach (TakmicarskaKategorija k in takmicenje.Kategorije) { RezultatskoTakmicenje rt = new RezultatskoTakmicenje(takmicenje, k, d, new Propozicije()); rt.Propozicije.PostojiTak2 = true; // hack rt.Propozicije.PostojiTak4 = true; // hack rt.ImaEkipnoTakmicenje = true; // hack rt.KombinovanoEkipnoTak = false; // hack rezTakmicenja.Add(rt); } } IDictionary<GimnasticarUcesnik, GimnasticarUcesnik> gimnasticariMap = new Dictionary<GimnasticarUcesnik, GimnasticarUcesnik>(); List<Takmicenje> prethodnaKola = new List<Takmicenje>(); if (takmicenje.PrvoKolo != null) prethodnaKola.Add(takmicenje.PrvoKolo); if (takmicenje.DrugoKolo != null) prethodnaKola.Add(takmicenje.DrugoKolo); if (takmicenje.TreceKolo != null) prethodnaKola.Add(takmicenje.TreceKolo); if (takmicenje.CetvrtoKolo != null) prethodnaKola.Add(takmicenje.CetvrtoKolo); foreach (TakmicarskaKategorija kat in takmicenje.Kategorije) { foreach (Takmicenje prethKolo in prethodnaKola) { foreach (GimnasticarUcesnik g in loadGimnasticari(prethKolo, kat.Naziv)) { if (!gimnasticariMap.ContainsKey(g)) { GimnasticarUcesnik g2 = createGimnasticarUcesnik(g, kat); gimnasticariMap.Add(g2, g2); } } } } List<List<RezultatskoTakmicenje>> rezTakmicenjaPrethodnaKola = new List<List<RezultatskoTakmicenje>>(); foreach (Takmicenje prethKolo in prethodnaKola) { rezTakmicenjaPrethodnaKola.Add(new List<RezultatskoTakmicenje>(loadRezTakmicenja(prethKolo.Id))); } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { foreach (List<RezultatskoTakmicenje> rezTakmicenjaPrethKolo in rezTakmicenjaPrethodnaKola) { RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaPrethKolo, rt.TakmicenjeDescription.Naziv, rt.Kategorija); foreach (GimnasticarUcesnik g in rtFrom.Takmicenje1.Gimnasticari) { GimnasticarUcesnik g2 = gimnasticariMap[g]; rt.Takmicenje1.addGimnasticar(g2); } } } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { foreach (List<RezultatskoTakmicenje> rezTakmicenjaPrethKolo in rezTakmicenjaPrethodnaKola) { RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaPrethKolo, rt.TakmicenjeDescription.Naziv, 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; if (e.DrzavaUcesnik == null) ekipa.DrzavaUcesnik = null; else { DrzavaUcesnik drzavaUcesnik = findDrzavaUcesnik(takmicenje, e.DrzavaUcesnik.Naziv); if (drzavaUcesnik == null) { drzavaUcesnik = new DrzavaUcesnik(); drzavaUcesnik.Naziv = e.DrzavaUcesnik.Naziv; drzavaUcesnik.Kod = e.DrzavaUcesnik.Kod; drzavaUcesnik.Takmicenje = takmicenje; dataContext.Add(drzavaUcesnik); } ekipa.DrzavaUcesnik = drzavaUcesnik; } if (e.KlubUcesnik == null) ekipa.KlubUcesnik = null; else { KlubUcesnik klubUcesnik = findKlubUcesnik(takmicenje, e.KlubUcesnik.Naziv); if (klubUcesnik == null) { klubUcesnik = new KlubUcesnik(); klubUcesnik.Naziv = e.KlubUcesnik.Naziv; klubUcesnik.Kod = e.KlubUcesnik.Kod; klubUcesnik.Takmicenje = takmicenje; dataContext.Add(klubUcesnik); } ekipa.KlubUcesnik = klubUcesnik; } rt.Takmicenje1.addEkipa(ekipa); } } } dataContext.Add(takmicenje); foreach (RezultatskoTakmicenje rt in rezTakmicenja) { dataContext.Add(rt); foreach (Ekipa e in rt.Takmicenje1.Ekipe) dataContext.Add(e); } foreach (GimnasticarUcesnik g in gimnasticariMap.Values) { dataContext.Add(g); } return true; }
public virtual void removeEkipa(Ekipa ekipa) { Ekipe.Remove(ekipa); }
private bool canAddGimnasticar(Ekipa ekipa, GimnasticarUcesnik gimnasticar) { // TODO: Najpre proveri da li ekipa vec ima max broj clanova. Takodje, // razmisli da li clan ekipe mora da bude i ucesnik rez. takmicenja // u kome se ekipa takmici. return !ekipa.Gimnasticari.Contains(gimnasticar); }
private List<RezultatUkupno> getRezultatiClanovaSorted( Ekipa e, IList<RezultatUkupno> rezultatiUkupno) { List<RezultatUkupno> result = new List<RezultatUkupno>(); foreach (GimnasticarUcesnik g in e.Gimnasticari) { foreach (RezultatUkupno rez in rezultatiUkupno) { if (g.Equals(rez.Gimnasticar)) result.Add(rez); } } PropertyDescriptor propDesc = TypeDescriptor.GetProperties(typeof(RezultatUkupno))["PrezimeIme"]; result.Sort(new SortComparer<RezultatUkupno>(propDesc, ListSortDirection.Ascending)); return result; }
public static void addEkipaToRezTak(Ekipa ekipa, RezultatskoTakmicenje rezTak) { RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); rezultatskoTakmicenjeDAO.Attach(rezTak, false); TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); Takmicenje takmicenje = takmicenjeDAO.FindById(rezTak.Takmicenje.Id); RezultatskoTakmicenje rezTak1 = null; RezultatskoTakmicenje rezTak2 = null; RezultatskoTakmicenje rezTak3 = null; RezultatskoTakmicenje rezTak4 = null; if (takmicenje.FinaleKupa || takmicenje.ZbirViseKola) { rezTak1 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.PrvoKolo.Id, rezTak.Kategorija.Naziv, 0); rezTak2 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.DrugoKolo.Id, rezTak.Kategorija.Naziv, 0); if (takmicenje.ZbirViseKola) { if (takmicenje.TreceKolo != null) { rezTak3 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.TreceKolo.Id, rezTak.Kategorija.Naziv, 0); } if (takmicenje.CetvrtoKolo != null) { rezTak4 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.CetvrtoKolo.Id, rezTak.Kategorija.Naziv, 0); } } } foreach (Ekipa e in rezTak.Takmicenje1.Ekipe) { foreach (GimnasticarUcesnik g in ekipa.Gimnasticari) { if (e.Gimnasticari.Contains(g)) { throw new BusinessException(String.Format(Strings.GIMNASTICAR_JE_CLAN_DRUGE_EKIPE_ERROR_MSG, g.ImeSrednjeImePrezime, e.Naziv)); } } } if (rezTak.Takmicenje1.addEkipa(ekipa, true)) { DAOFactoryFactory.DAOFactory.GetEkipaDAO().Add(ekipa); if (takmicenje.FinaleKupa) { rezTak.Takmicenje1.updateRezultatiOnEkipaAdded(ekipa, findRezultatiUkupnoForEkipa(takmicenje.Id, ekipa), rezTak, rezTak1, rezTak2); } else if (takmicenje.ZbirViseKola) { rezTak.Takmicenje1.updateRezultatiOnEkipaAdded(ekipa, rezTak, rezTak1, rezTak2, rezTak3, rezTak4); } else { rezTak.Takmicenje1.updateRezultatiOnEkipaAdded(ekipa, rezTak, findRezultatiUkupnoForEkipa(takmicenje.Id, ekipa)); } // snimi ekipe i poredak ekipno DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO().Update(rezTak.Takmicenje1); } takmicenjeDAO.Evict(takmicenje); if (rezTak1 != null) { rezultatskoTakmicenjeDAO.Evict(rezTak1); } if (rezTak2 != null) { rezultatskoTakmicenjeDAO.Evict(rezTak2); } if (rezTak3 != null) { rezultatskoTakmicenjeDAO.Evict(rezTak3); } if (rezTak4 != null) { rezultatskoTakmicenjeDAO.Evict(rezTak4); } }