private Takmicenje insertTakmicenje() { Takmicenje takmicenje = new Takmicenje(); takmicenje.Naziv = "3rd European Artistic Gymnastics Individual Championships"; takmicenje.Datum = DateTime.Parse("02.04.2009"); takmicenje.Mesto = "Milano"; takmicenje.Gimnastika = gimnastika; takmicenje.BrojDecimalaD = 3; takmicenje.BrojDecimalaE1 = 2; takmicenje.BrojDecimalaE = 3; takmicenje.BrojDecimalaPen = 1; takmicenje.BrojDecimalaTotal = 3; takmicenje.ZavrsenoTak1 = true; string naziv = (gimnastika == Gimnastika.MSG) ? "Seniori" : "Seniorke"; TakmicarskaKategorija takKategorija = new TakmicarskaKategorija(naziv); RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = "European Championships"; desc.Propozicije = createPropozicije(); takmicenje.addKategorija(takKategorija); takmicenje.addTakmicenjeDescription(desc); DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().Add(takmicenje); RezultatskoTakmicenje rezTak = new RezultatskoTakmicenje(takmicenje, takKategorija, desc, createPropozicije()); DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO().Add(rezTak); return(takmicenje); }
protected override DomainObject createNewEntity() { RezultatskoTakmicenjeDescription result = new RezultatskoTakmicenjeDescription(); result.Propozicije = new Propozicije(); return(result); }
protected override void updateUIFromEntity(DomainObject entity) { RezultatskoTakmicenjeDescription d = (RezultatskoTakmicenjeDescription)entity; txtNaziv.Text = d.Naziv; // kategorije su checkirane u initUI }
private RezultatskoTakmicenje createRezultatskoTakmicenje(Takmicenje takmicenje, TakmicarskaKategorija k, RezultatskoTakmicenjeDescription d, int redBroj) { RezultatskoTakmicenje result = new RezultatskoTakmicenje(takmicenje, k, d, new Propozicije()); result.RedBroj = (byte)redBroj; return(result); }
protected override void updateEntity(DomainObject entity) { RezultatskoTakmicenjeDescription desc = (RezultatskoTakmicenjeDescription)entity; DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO().Update(desc); Takmicenje takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId); RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); IList <RezultatskoTakmicenje> rezTakmicenja = rezTakDAO.FindByTakmicenje(takmicenjeId); TakmicarskaKategorijaDAO takKatDAO = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO(); IList <RezultatskoTakmicenje> istaRezTakmicenja = new List <RezultatskoTakmicenje>(); IList <RezultatskoTakmicenje> vecaRezTakmicenja = new List <RezultatskoTakmicenje>(); int redBroj = 0; foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (rt.TakmicenjeDescription.RedBroj < desc.RedBroj) { if (rt.RedBroj > redBroj) { redBroj = rt.RedBroj; } } else if (rt.TakmicenjeDescription.RedBroj > desc.RedBroj) { vecaRezTakmicenja.Add(rt); } } foreach (TakmicarskaKategorija k in sveKategorije) { if (SelKategorije.Contains(k) && oldKategorije.Contains(k)) { RezultatskoTakmicenje rt = rezTakDAO.FindByKatDesc(k, desc); rt.RedBroj = (byte)++redBroj; rezTakDAO.Update(rt); } else if (SelKategorije.Contains(k) && !oldKategorije.Contains(k)) { takKatDAO.Attach(k, false); rezTakDAO.Add(createRezultatskoTakmicenje(takmicenje, k, desc, ++redBroj)); } else if (!SelKategorije.Contains(k) && oldKategorije.Contains(k)) { RezultatskoTakmicenje rt = rezTakDAO.FindByKatDesc(k, desc); rezTakDAO.Delete(rt); } } foreach (RezultatskoTakmicenje rt in vecaRezTakmicenja) { rt.RedBroj = (byte)++redBroj; rezTakDAO.Update(rt); } }
protected override void updateEntityFromUI(DomainObject entity) { RezultatskoTakmicenjeDescription d = (RezultatskoTakmicenjeDescription)entity; d.Naziv = txtNaziv.Text.Trim(); SelKategorije.Clear(); foreach (object item in checkedListBoxKategorije.CheckedItems) { SelKategorije.Add(item as TakmicarskaKategorija); } }
protected override void checkBusinessRulesOnAdd(DomainObject entity) { RezultatskoTakmicenjeDescription d = (RezultatskoTakmicenjeDescription)entity; Notification notification = new Notification(); if (DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO() .existsDescriptionNaziv(d.Naziv, takmicenjeId)) { notification.RegisterMessage("Naziv", "Takmicenje sa datim nazivom vec postoji."); throw new BusinessException(notification); } }
private void btnAddTakmicenje_Click(object sender, EventArgs e) { if (lstKategorije.Items.Count == 0) { MessageDialogs.showMessage("Morate najpre da unesete kategorije.", this.Text); return; } RezultatskoTakmicenjeDescriptionForm form; try { form = new RezultatskoTakmicenjeDescriptionForm(null, takmicenjeId); if (form.ShowDialog() != DialogResult.OK) { return; } } catch (InfrastructureException ex) { MessageDialogs.showError(ex.Message, this.Text); return; } ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); // reload rez. takmicenja RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); setTakmicenja(rezTakDAO.FindByTakmicenje(takmicenjeId)); SelectedTakmicenje = (RezultatskoTakmicenjeDescription)form.Entity; } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showMessage(ex.Message, this.Text); return; } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
private void btnDeleteTakmicenje_Click(object sender, EventArgs e) { RezultatskoTakmicenjeDescription desc = SelectedTakmicenje; if (desc == null) { return; } string msgFmt = "Da li zelite da izbrisete takmicenje '{0}'?"; if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, desc.Naziv), this.Text)) { return; } Cursor.Current = Cursors.WaitCursor; Cursor.Show(); ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); deleteTakmicenje(desc); Takmicenje t = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId); t.LastModified = DateTime.Now; session.Transaction.Commit(); // reload rez. takmicenja setTakmicenja(DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO().FindByTakmicenje(takmicenjeId)); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showMessage(ex.Message, this.Text); return; } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
private IList <Propozicije> getDependentPropozicije(RezultatskoTakmicenjeDescription d) { IList <Propozicije> result = new List <Propozicije>(); foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (rt.TakmicenjeDescription.Equals(d)) { result.Add(rt.Propozicije); } } return(result); }
protected override void checkBusinessRulesOnUpdate(DomainObject entity) { RezultatskoTakmicenjeDescription d = (RezultatskoTakmicenjeDescription)entity; Notification notification = new Notification(); bool nazivChanged = (d.Naziv.ToUpper() != oldNaziv.ToUpper()) ? true : false; if (nazivChanged && DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO() .existsDescriptionNaziv(d.Naziv, takmicenjeId)) { notification.RegisterMessage("Naziv", "Takmicenje sa datim nazivom vec postoji."); throw new BusinessException(notification); } }
public IList <RezultatskoTakmicenje> FindByDescription(RezultatskoTakmicenjeDescription desc) { try { IQuery q = Session.CreateQuery(@" from RezultatskoTakmicenje r where r.TakmicenjeDescription = :desc order by r.RedBroj"); q.SetEntity("desc", desc); return(q.List <RezultatskoTakmicenje>()); } catch (HibernateException ex) { throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex); } }
protected override void addEntity(DomainObject entity) { RezultatskoTakmicenjeDescription desc = (RezultatskoTakmicenjeDescription)entity; Takmicenje takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId); takmicenje.addTakmicenjeDescription(desc); DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().Update(takmicenje); RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); int redBroj = rezTakDAO.FindMaxRedBroj(takmicenjeId) + 1; foreach (TakmicarskaKategorija k in SelKategorije) { rezTakDAO.Add(createRezultatskoTakmicenje(takmicenje, k, desc, redBroj++)); } }
public IList <TakmicarskaKategorija> FindByTakmicenjeDesc(int takmicenjeId, RezultatskoTakmicenjeDescription desc) { try { IQuery q = Session.CreateQuery(@" select distinct k from RezultatskoTakmicenje r join r.Kategorija k where r.Takmicenje.Id = :takmicenjeId and r.TakmicenjeDescription = :desc order by k.RedBroj"); q.SetInt32("takmicenjeId", takmicenjeId); q.SetEntity("desc", desc); return(q.List <TakmicarskaKategorija>()); } catch (HibernateException ex) { throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex); } }
public RezultatskoTakmicenje FindByKatDesc(TakmicarskaKategorija kat, RezultatskoTakmicenjeDescription desc) { try { IQuery q = Session.CreateQuery(@" from RezultatskoTakmicenje r where r.Kategorija = :kat and r.TakmicenjeDescription = :desc"); q.SetEntity("kat", kat); q.SetEntity("desc", desc); IList <RezultatskoTakmicenje> result = q.List <RezultatskoTakmicenje>(); if (result.Count > 0) { return(result[0]); } return(null); } catch (HibernateException ex) { throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex); } }
private void deleteTakmicenje(RezultatskoTakmicenjeDescription desc) { RezultatskoTakmicenjeDescriptionDAO rezTakDescDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO(); rezTakDescDAO.Attach(desc, false); RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); foreach (RezultatskoTakmicenje rt in rezTakDAO.FindByDescription(desc)) { rezTakDAO.Delete(rt); } // Ne apdejtujem redne brojeve za preostala rez. takmicenja zato sto je redosled nepromenjen TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); Takmicenje takmicenje = takmicenjeDAO.FindById(takmicenjeId); takmicenje.removeTakmicenjeDescription(desc); takmicenjeDAO.Update(takmicenje); rezTakDescDAO.Delete(desc); }
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); } }
public static void createFromPrevTakmicenje(Takmicenje takmicenje, Takmicenje from, IList <RezultatskoTakmicenje> rezTakmicenjaFrom, IDictionary <int, List <GimnasticarUcesnik> > rezTakToGimnasticarUcesnikMap) { const int MAX = 1024; TakmicarskaKategorija[] kategorije = new TakmicarskaKategorija[MAX]; for (int i = 0; i < MAX; ++i) { kategorije[i] = null; } foreach (RezultatskoTakmicenje rtFrom in rezTakmicenjaFrom) { if (kategorije[rtFrom.Kategorija.RedBroj] == null) { kategorije[rtFrom.Kategorija.RedBroj] = new TakmicarskaKategorija(rtFrom.Kategorija.Naziv); } } PropozicijeDAO propozicijeDAO = DAOFactoryFactory.DAOFactory.GetPropozicijeDAO(); foreach (RezultatskoTakmicenje rtFrom in rezTakmicenjaFrom) { propozicijeDAO.Attach(rtFrom.TakmicenjeDescription.Propozicije, false); propozicijeDAO.Attach(rtFrom.Propozicije, false); } RezultatskoTakmicenjeDescription[] descriptions = new RezultatskoTakmicenjeDescription[MAX]; for (int i = 0; i < MAX; ++i) { descriptions[i] = null; } foreach (RezultatskoTakmicenje rtFrom in rezTakmicenjaFrom) { if (descriptions[rtFrom.TakmicenjeDescription.RedBroj] == null) { RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = rtFrom.TakmicenjeDescription.Naziv; desc.Propozicije = new Propozicije(); // Apdejtujem jedino propozicije za takmicenje 4 zbog kombinovanog ekipnog takmicenja. // Ostale propozicije su na inicijalnim vrednostima. rtFrom.TakmicenjeDescription.Propozicije.copyTakmicenje4To(desc.Propozicije); descriptions[rtFrom.TakmicenjeDescription.RedBroj] = desc; } } takmicenje.Kategorije.Clear(); for (int i = 0; i < MAX; ++i) { if (kategorije[i] != null) { takmicenje.addKategorija(kategorije[i]); } } takmicenje.TakmicenjeDescriptions.Clear(); bool first = true; for (int i = 0; i < MAX; ++i) { if (descriptions[i] != null) { if (first) { // prvi description je uvek kao naziv takmicenja. RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription(); desc.Naziv = takmicenje.Naziv; desc.Propozicije = descriptions[i].Propozicije; // klonirane propozicije descriptions[i] = desc; first = false; } takmicenje.addTakmicenjeDescription(descriptions[i]); } } IList <RezultatskoTakmicenje> rezTakmicenja = new List <RezultatskoTakmicenje>(); foreach (RezultatskoTakmicenje rtFrom in rezTakmicenjaFrom) { RezultatskoTakmicenje rt = new RezultatskoTakmicenje(takmicenje, kategorije[rtFrom.Kategorija.RedBroj], descriptions[rtFrom.TakmicenjeDescription.RedBroj], new Propozicije()); rtFrom.Propozicije.copyTakmicenje4To(rt.Propozicije); rezTakmicenja.Add(rt); } foreach (RezultatskoTakmicenjeDescription d in takmicenje.TakmicenjeDescriptions) { RezultatskoTakmicenje.updateImaEkipnoTakmicenje(rezTakmicenja, d); } TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); takmicenjeDAO.Add(takmicenje); IDictionary <int, GimnasticarUcesnik> gimnasticariMap = new Dictionary <int, GimnasticarUcesnik>(); for (int i = 0; i < rezTakmicenja.Count; ++i) { RezultatskoTakmicenje rt = rezTakmicenja[i]; RezultatskoTakmicenje rtFrom = rezTakmicenjaFrom[i]; foreach (GimnasticarUcesnik g in rezTakToGimnasticarUcesnikMap[rtFrom.Id]) { GimnasticarUcesnik g2; if (!gimnasticariMap.ContainsKey(g.Id)) { g2 = GimnasticarUcesnikService.createGimnasticarUcesnik(g, kategorije[g.TakmicarskaKategorija.RedBroj]); gimnasticariMap[g.Id] = g2; } else { g2 = gimnasticariMap[g.Id]; } rt.Takmicenje1.addGimnasticar(g2); rt.Takmicenje1.updateRezultatiOnGimnasticarAdded(g2, new List <Ocena>(), rt); } } Takmicenje1DAO takmicenje1DAO = DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO(); for (int i = 0; i < rezTakmicenja.Count; ++i) { RezultatskoTakmicenje rt = rezTakmicenja[i]; RezultatskoTakmicenje rtFrom = rezTakmicenjaFrom[i]; takmicenje1DAO.Attach(rtFrom.Takmicenje1, false); foreach (Ekipa e in rtFrom.Takmicenje1.Ekipe) { Ekipa ekipa = new Ekipa(); ekipa.Naziv = e.Naziv; ekipa.Kod = e.Kod; // Ne kopiram clanove ekipe zato sto dodavati clanove ekipe ima smisla jedino ako se znaju // rezultati, a ovaj metod samo pravi pripremu takmicenja i nema nikakvih rezultata. rt.Takmicenje1.addEkipa(ekipa, true); } } RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); EkipaDAO ekipaDAO = DAOFactoryFactory.DAOFactory.GetEkipaDAO(); foreach (RezultatskoTakmicenje rt in rezTakmicenja) { rezultatskoTakmicenjeDAO.Add(rt); foreach (Ekipa e in rt.Takmicenje1.Ekipe) { ekipaDAO.Add(e); } } GimnasticarUcesnikDAO gimnasticarUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO(); foreach (GimnasticarUcesnik g in gimnasticariMap.Values) { gimnasticarUcesnikDAO.Add(g); } }
protected override void saveOriginalData(DomainObject entity) { RezultatskoTakmicenjeDescription d = (RezultatskoTakmicenjeDescription)entity; oldNaziv = d.Naziv; }