private bool postojeUneteOcene(int takmicenjeId) { ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); ocenaDAO.Session = session; return(ocenaDAO.existsOcene(takmicenjeId)); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } throw new InfrastructureException(ex.Message, ex); } finally { } }
private void btnStampajSaOgranicenjem_Click(object sender, EventArgs e) { MaxGimIzKlubaUFinaluForm form = new MaxGimIzKlubaUFinaluForm(); if (form.ShowDialog() != DialogResult.OK) { return; } Cursor.Current = Cursors.WaitCursor; Cursor.Show(); ISession session = null; PoredakUkupno p = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); IList <Ocena> ocene = ocenaDAO.FindByDeoTakmicenja(takmicenje.Id, DeoTakmicenjaKod.Takmicenje1); p = new PoredakUkupno(DeoTakmicenjaKod.Takmicenje1); p.create(ActiveTakmicenje, ocene, true, form.MaxBrojTakmicaraIzKluba, form.MaxBrojTakmicaraVaziZaDrzavu); foreach (Ocena o in ocene) { ocenaDAO.Evict(o); } } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); Close(); return; } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } string nazivIzvestaja = "Finale vi" + Jezik.shMalo + "eboja"; stampaj(p, nazivIzvestaja); }
public static void deleteGimnasticariFromRezTak(IList <GimnasticarUcesnik> gimnasticari, RezultatskoTakmicenje rezTak) { DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO().Attach(rezTak, false); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); foreach (GimnasticarUcesnik g in gimnasticari) { rezTak.Takmicenje1.removeGimnasticar(g); IList <Ocena> ocene = ocenaDAO.FindByGimnasticar(g, DeoTakmicenjaKod.Takmicenje1); rezTak.Takmicenje1.updateRezultatiOnGimnasticarDeleted(g, ocene, rezTak); foreach (Ocena o in ocene) { ocenaDAO.Evict(o); } } DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO().Update(rezTak.Takmicenje1); }
public static void addTakmicenje(Takmicenje t, IList <KlubUcesnik> klubovi, IList <DrzavaUcesnik> drzave, IList <GimnasticarUcesnik> gimnasticari, IList <RezultatskoTakmicenje> rezTakmicenja, IList <SudijaUcesnik> sudije, IList <RasporedSudija> rasporediSudija, IList <RasporedNastupa> rasporediNastupa, IList <Ocena> ocene) { // dodaj takmicenje TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); takmicenjeDAO.Add(t); // kategorije i descriptions se dodaju pomocu transitive persistance // dodaj klubove ucesnike KlubUcesnikDAO klubUcesnikDAO = DAOFactoryFactory.DAOFactory.GetKlubUcesnikDAO(); foreach (KlubUcesnik k in klubovi) { klubUcesnikDAO.Add(k); } // dodaj drzave ucesnike DrzavaUcesnikDAO drzavaUcesnikDAO = DAOFactoryFactory.DAOFactory.GetDrzavaUcesnikDAO(); foreach (DrzavaUcesnik d in drzave) { drzavaUcesnikDAO.Add(d); } // dodaj gimnasticare ucesnike GimnasticarUcesnikDAO gimnasticarUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO(); foreach (GimnasticarUcesnik g in gimnasticari) { gimnasticarUcesnikDAO.Add(g); } // dodaj rezultatska takmicenja i ekipe RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); EkipaDAO ekipaDAO = DAOFactoryFactory.DAOFactory.GetEkipaDAO(); foreach (RezultatskoTakmicenje r in rezTakmicenja) { foreach (Ekipa e in r.Takmicenje1.Ekipe) { ekipaDAO.Add(e); } rezultatskoTakmicenjeDAO.Add(r); } // dodaj sudije ucesnike if (sudije != null) { SudijaUcesnikDAO sudijaUcesnikDAO = DAOFactoryFactory.DAOFactory.GetSudijaUcesnikDAO(); foreach (SudijaUcesnik s in sudije) { sudijaUcesnikDAO.Add(s); } } // dodaj rasporede sudija if (rasporediSudija != null) { RasporedSudijaDAO rasporedSudijaDAO = DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO(); foreach (RasporedSudija r in rasporediSudija) { rasporedSudijaDAO.Add(r); } } // dodaj rasporede nastupa if (rasporediNastupa != null) { RasporedNastupaDAO rasporedNastupaDAO = DAOFactoryFactory.DAOFactory.GetRasporedNastupaDAO(); foreach (RasporedNastupa r in rasporediNastupa) { rasporedNastupaDAO.Add(r); } } // dodaj ocene OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); foreach (Ocena o in ocene) { ocenaDAO.Add(o); } }
public static void deleteTakmicenje(Takmicenje t, bool proveriFinala) { TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); if (proveriFinala) { // Proveri da li se neko takmicenje (finale kupa ili zbir vise kola) referise na ovo takmicenje. IList <Takmicenje> finala = takmicenjeDAO.FindFinala(t); if (finala.Count > 0) { string msg = "Takmicenje \"" + t.ToString() + "\" je nemoguce izbrisati jer je ono jedno od kola za " + "sledeca finala:\n\n"; foreach (Takmicenje f in finala) { msg += f.ToString() + "\n"; } throw new BusinessException(msg); } } // brisi ocene OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); foreach (Ocena o in ocenaDAO.FindByTakmicenje(t.Id)) { ocenaDAO.Delete(o); } // brisi rasporede nastupa RasporedNastupaDAO rasporedNastupaDAO = DAOFactoryFactory.DAOFactory.GetRasporedNastupaDAO(); foreach (RasporedNastupa r in rasporedNastupaDAO.FindByTakmicenje(t.Id)) { rasporedNastupaDAO.Delete(r); } // brisi rasporede sudija RasporedSudijaDAO rasporedSudijaDAO = DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO(); foreach (RasporedSudija r in rasporedSudijaDAO.FindByTakmicenje(t.Id)) { rasporedSudijaDAO.Delete(r); } // brisi sudije ucesnike SudijaUcesnikDAO sudijaUcesnikDAO = DAOFactoryFactory.DAOFactory.GetSudijaUcesnikDAO(); foreach (SudijaUcesnik s in sudijaUcesnikDAO.FindByTakmicenje(t.Id)) { sudijaUcesnikDAO.Delete(s); } // brisi rezultatska takmicenja i ekipe RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); EkipaDAO ekipaDAO = DAOFactoryFactory.DAOFactory.GetEkipaDAO(); foreach (RezultatskoTakmicenje r in rezultatskoTakmicenjeDAO.FindByTakmicenje(t.Id)) { foreach (Ekipa e in r.Takmicenje1.Ekipe) { ekipaDAO.Delete(e); } rezultatskoTakmicenjeDAO.Delete(r); } // brisi gimnasticare ucesnike GimnasticarUcesnikDAO gimnasticarUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO(); foreach (GimnasticarUcesnik g in gimnasticarUcesnikDAO.FindByTakmicenje(t.Id)) { gimnasticarUcesnikDAO.Delete(g); } // brisi klubove ucesnike KlubUcesnikDAO klubUcesnikDAO = DAOFactoryFactory.DAOFactory.GetKlubUcesnikDAO(); foreach (KlubUcesnik k in klubUcesnikDAO.FindByTakmicenje(t.Id)) { klubUcesnikDAO.Delete(k); } // brisi drzave ucesnike DrzavaUcesnikDAO drzavaUcesnikDAO = DAOFactoryFactory.DAOFactory.GetDrzavaUcesnikDAO(); foreach (DrzavaUcesnik d in drzavaUcesnikDAO.FindByTakmicenje(t.Id)) { drzavaUcesnikDAO.Delete(d); } // brisi kategorije TakmicarskaKategorijaDAO takmicarskaKategorijaDAO = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO(); foreach (TakmicarskaKategorija k in takmicarskaKategorijaDAO.FindByTakmicenje(t.Id)) { takmicarskaKategorijaDAO.Delete(k); } // brisi descriptions RezultatskoTakmicenjeDescriptionDAO rezTakDescDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO(); foreach (RezultatskoTakmicenjeDescription d in rezTakDescDAO.FindByTakmicenje(t.Id)) { rezTakDescDAO.Delete(d); } // brisi takmicenje takmicenjeDAO.Delete(t); }
private void btnIzracunaj_Click(object sender, EventArgs e) { string msg; if (kvalColumnVisible()) { msg = "Da li zelite da izracunate poredak, kvalifikante i rezerve?"; } else { msg = "Da li zelite da izracunate poredak?"; } if (!MessageDialogs.queryConfirmation(msg, this.Text)) { return; } Cursor.Current = Cursors.WaitCursor; Cursor.Show(); ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); IList <Ocena> ocene = ocenaDAO.FindByDeoTakmicenja(takmicenje.Id, deoTakKod); if (ActiveSprava != Sprava.Preskok) { PoredakSprava p = ActiveTakmicenje.getPoredakSprava(deoTakKod, ActiveSprava); p.create(ActiveTakmicenje, ocene); DAOFactoryFactory.DAOFactory.GetPoredakSpravaDAO().Update(p); } else { PoredakPreskok p = ActiveTakmicenje.getPoredakPreskok(deoTakKod); p.create(ActiveTakmicenje, ocene); DAOFactoryFactory.DAOFactory.GetPoredakPreskokDAO().Update(p); } foreach (Ocena o in ocene) { ocenaDAO.Evict(o); } takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id); takmicenje.LastModified = DateTime.Now; session.Transaction.Commit(); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); return; } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } setItems(); }
// Proveri da li za svaki rezultat postoji i ocena. public void proveriRezultateIOcene() { StreamWriter log = File.CreateText("proveri_rezultate_i_ocene.txt"); IList <int> takmicenjaId = getTakmicenjaId(); string takmicenjeHeader = String.Empty; for (int j = 0; j < takmicenjaId.Count; ++j) { ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO(); Takmicenje t = takmicenjeDAO.FindById(takmicenjaId[j]); if (t.ZbirViseKola) { continue; } takmicenjeHeader = j.ToString() + ". " + t.ToString(); takmicenjeHeader += " (" + t.Id + ")"; RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); IList <RezultatskoTakmicenje> rezTakmicenja = rezTakDAO.FindByTakmicenje(t.Id); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); // Takmicenje 1 IList <Ocena> ocene = ocenaDAO.FindByDeoTakmicenja(t.Id, DeoTakmicenjaKod.Takmicenje1); IDictionary <int, IList <Ocena> > oceneMap = new Dictionary <int, IList <Ocena> >(); foreach (Ocena o in ocene) { if (!oceneMap.ContainsKey(o.Gimnasticar.Id)) { oceneMap.Add(o.Gimnasticar.Id, new List <Ocena>()); } oceneMap[o.Gimnasticar.Id].Add(o); } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { foreach (PoredakSprava p in rt.Takmicenje1.PoredakSprava) { foreach (RezultatSprava r in p.Rezultati) { if (!oceneMap.ContainsKey(r.Gimnasticar.Id)) { if (r.Total != null) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema nijednu ocenu" + " Takmicenje1"); } continue; } IList <Ocena> oceneList = oceneMap[r.Gimnasticar.Id]; Ocena o = null; foreach (Ocena o2 in oceneList) { if (o2.Sprava == p.Sprava) { o = o2; break; } } if (o == null && r.Total != null) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema ocenu za " + p.Sprava.ToString() + " Takmicenje1"); } if (o != null && o.Total != r.Total) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " total se razlikuje " + p.Sprava.ToString() + " Takmicenje1"); } } } foreach (RezultatPreskok r in rt.Takmicenje1.PoredakPreskok.Rezultati) { if (!oceneMap.ContainsKey(r.Gimnasticar.Id)) { if (r.Total != null || r.TotalObeOcene != null) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema nijednu ocenu" + " Takmicenje1"); } continue; } IList <Ocena> oceneList = oceneMap[r.Gimnasticar.Id]; Ocena o = null; foreach (Ocena o2 in oceneList) { if (o2.Sprava == Sprava.Preskok) { o = o2; break; } } if (o == null && (r.Total != null || r.TotalObeOcene != null)) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema ocenu za " + Sprava.Preskok.ToString() + " Takmicenje1"); } if (o != null && (o.Total != r.Total || o.TotalObeOcene != r.TotalObeOcene)) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " total se razlikuje " + Sprava.Preskok.ToString() + " Takmicenje1"); } } } // Takmicenje 3 ocene = ocenaDAO.FindByDeoTakmicenja(t.Id, DeoTakmicenjaKod.Takmicenje3); oceneMap = new Dictionary <int, IList <Ocena> >(); foreach (Ocena o in ocene) { if (!oceneMap.ContainsKey(o.Gimnasticar.Id)) { oceneMap.Add(o.Gimnasticar.Id, new List <Ocena>()); } oceneMap[o.Gimnasticar.Id].Add(o); } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (rt.Takmicenje3 == null) { continue; } if (!rt.odvojenoTak3()) { continue; } foreach (PoredakSprava p in rt.Takmicenje3.Poredak) { foreach (RezultatSprava r in p.Rezultati) { if (!oceneMap.ContainsKey(r.Gimnasticar.Id)) { if (r.Total != null) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema nijednu ocenu" + " Takmicenje3"); } continue; } IList <Ocena> oceneList = oceneMap[r.Gimnasticar.Id]; Ocena o = null; foreach (Ocena o2 in oceneList) { if (o2.Sprava == p.Sprava) { o = o2; break; } } if (o == null && r.Total != null) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema ocenu za " + p.Sprava.ToString() + " Takmicenje3"); } if (o != null && o.Total != r.Total) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " total se razlikuje " + p.Sprava.ToString() + " Takmicenje3"); } } } foreach (RezultatPreskok r in rt.Takmicenje3.PoredakPreskok.Rezultati) { if (!oceneMap.ContainsKey(r.Gimnasticar.Id)) { if (r.Total != null || r.TotalObeOcene != null) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema nijednu ocenu" + " Takmicenje3"); } continue; } IList <Ocena> oceneList = oceneMap[r.Gimnasticar.Id]; Ocena o = null; foreach (Ocena o2 in oceneList) { if (o2.Sprava == Sprava.Preskok) { o = o2; break; } } if (o == null && (r.Total != null || r.TotalObeOcene != null)) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " nema ocenu za " + Sprava.Preskok.ToString() + " Takmicenje3"); } if (o != null && (o.Total != r.Total || o.TotalObeOcene != r.TotalObeOcene)) { log.WriteLine(takmicenjeHeader + ": " + r.Gimnasticar.ToString() + " total se razlikuje " + Sprava.Preskok.ToString() + " Takmicenje3"); } } } } } catch (Exception) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } log.Close(); MessageBox.Show(takmicenjeHeader); throw; } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } } log.Close(); }
private void mnSpraveKojeSeBoduju_Click(object sender, EventArgs e) { IList <GimnasticarUcesnik> selItems = getActiveDataGridViewUserControl() .getSelectedItems <GimnasticarUcesnik>(); if (selItems.Count != 1) { return; } GimnasticarUcesnik g = selItems[0]; List <int> checkedItems = new List <int>(); foreach (Sprava s in Sprave.getSprave(ActiveRezTakmicenje.Gimnastika)) { if (g.getSpravaSeBoduje(s)) { checkedItems.Add(Sprave.indexOf(s, ActiveRezTakmicenje.Gimnastika)); } } CheckListForm form = new CheckListForm( new List <string>(Sprave.getSpraveNazivi(ActiveRezTakmicenje.Gimnastika)), checkedItems, "Izaberite sprave koje se boduju", "Sprave koje se boduju", true, "Izaberite sprave", true); if (form.ShowDialog() != DialogResult.OK) { return; } Sprava[] sprave = Sprave.getSprave(ActiveRezTakmicenje.Gimnastika); IList <Sprava> spraveKojeSeBoduju = new List <Sprava>(); g.clearSpraveKojeSeBoduju(); foreach (int i in form.CheckedIndices) { g.setSpravaSeBoduje(sprave[i]); } Cursor.Current = Cursors.WaitCursor; Cursor.Show(); ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO().Update(g); PoredakSpravaDAO poredakSpravaDAO = DAOFactoryFactory.DAOFactory.GetPoredakSpravaDAO(); PoredakPreskokDAO poredakPreskokDAO = DAOFactoryFactory.DAOFactory.GetPoredakPreskokDAO(); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); IList <Ocena> ocene = ocenaDAO.FindByDeoTakmicenja(takmicenje.Id, DeoTakmicenjaKod.Takmicenje1); foreach (Sprava s in Sprave.getSprave(ActiveRezTakmicenje.Gimnastika)) { if (s != Sprava.Preskok) { PoredakSprava p = ActiveRezTakmicenje.getPoredakSprava(DeoTakmicenjaKod.Takmicenje1, s); poredakSpravaDAO.Attach(p, false); p.create(ActiveRezTakmicenje, ocene); poredakSpravaDAO.Update(p); } else { PoredakPreskok p = ActiveRezTakmicenje.getPoredakPreskok(DeoTakmicenjaKod.Takmicenje1); poredakPreskokDAO.Attach(p, false); p.create(ActiveRezTakmicenje, ocene); poredakPreskokDAO.Update(p); } } foreach (Ocena o in ocene) { ocenaDAO.Evict(o); } takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id); takmicenje.LastModified = DateTime.Now; session.Transaction.Commit(); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); Close(); return; } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
private void btnOk_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; Cursor.Show(); ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); RezultatskoTakmicenje origTakmicenje = loadRezTakmicenje(rezTakmicenje.Id); List <UcesnikTakmicenja3> orig = new List <UcesnikTakmicenja3>(origTakmicenje.Takmicenje3.getUcesniciKvalifikanti(sprava)); List <UcesnikTakmicenja3> curr = new List <UcesnikTakmicenja3>(rezTakmicenje.Takmicenje3.getUcesniciKvalifikanti(sprava)); List <UcesnikTakmicenja3> added = new List <UcesnikTakmicenja3>(); List <UcesnikTakmicenja3> updated = new List <UcesnikTakmicenja3>(); List <UcesnikTakmicenja3> deleted = new List <UcesnikTakmicenja3>(); diff(curr, orig, added, updated, deleted); foreach (UcesnikTakmicenja3 u in updated) { UcesnikTakmicenja3 origUcesnik = origTakmicenje.Takmicenje3.getUcesnikKvalifikant(u.Gimnasticar, sprava); origUcesnik.QualOrder = u.QualOrder; } OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); foreach (UcesnikTakmicenja3 u in added) { origTakmicenje.Takmicenje3.addUcesnik(u); Ocena o = ocenaDAO.FindOcena(u.Gimnasticar, DeoTakmicenjaKod.Takmicenje3, sprava); if (sprava != Sprava.Preskok) { origTakmicenje.Takmicenje3.getPoredak(sprava).addGimnasticar(u.Gimnasticar, o, origTakmicenje); } else { origTakmicenje.Takmicenje3.PoredakPreskok.addGimnasticar(u.Gimnasticar, o, origTakmicenje); } } foreach (UcesnikTakmicenja3 u in deleted) { origTakmicenje.Takmicenje3.removeUcesnik(u); if (sprava == Sprava.Preskok) { origTakmicenje.Takmicenje3.PoredakPreskok.deleteGimnasticar(u.Gimnasticar, origTakmicenje); } else { origTakmicenje.Takmicenje3.getPoredak(sprava).deleteGimnasticar(u.Gimnasticar, origTakmicenje); } } DAOFactoryFactory.DAOFactory.GetTakmicenje3DAO().Update(origTakmicenje.Takmicenje3); Takmicenje t = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id); t.LastModified = DateTime.Now; session.Transaction.Commit(); } } catch (InfrastructureException ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
private void deleteGimnasticar(GimnasticarUcesnik g) { Cursor.Current = Cursors.WaitCursor; Cursor.Show(); ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); GimnasticarUcesnikDAO gimUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO(); gimUcesnikDAO.Attach(g, false); StartListaNaSpraviDAO startListaDAO = DAOFactoryFactory.DAOFactory.GetStartListaNaSpraviDAO(); EkipaDAO ekipaDAO = DAOFactoryFactory.DAOFactory.GetEkipaDAO(); RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); Takmicenje1DAO tak1DAO = DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO(); Takmicenje3DAO tak3DAO = DAOFactoryFactory.DAOFactory.GetTakmicenje3DAO(); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); // Izbaci gimnasticara iz start lista foreach (StartListaNaSpravi s in startListaDAO.FindByGimnasticar(g)) { s.removeNastup(g); startListaDAO.Update(s); } // Izbaci gimnasticara iz ekipa foreach (Ekipa e in ekipaDAO.FindByGimnasticar(g)) { e.removeGimnasticar(g); ekipaDAO.Update(e); RezultatskoTakmicenje rt = rezTakDAO.FindByEkipa(e); rt.Takmicenje1.updateRezultatiOnEkipaUpdated(e, rt, RezultatskoTakmicenjeService.findRezultatiUkupnoForEkipa(rt.Takmicenje.Id, e)); tak1DAO.Update(rt.Takmicenje1); } IList <Ocena> ocene1 = ocenaDAO.FindByGimnasticar(g, DeoTakmicenjaKod.Takmicenje1); IList <Ocena> ocene3 = ocenaDAO.FindByGimnasticar(g, DeoTakmicenjaKod.Takmicenje3); // Izbaci gimnasticara iz takmicenja 1 foreach (RezultatskoTakmicenje rt in rezTakDAO.FindByGimnasticar(g)) { rt.Takmicenje1.removeGimnasticar(g); // Izbaci gimnasticara iz svih poredaka na kojima je vezbao. rt.Takmicenje1.updateRezultatiOnGimnasticarDeleted(g, ocene1, rt); tak1DAO.Update(rt.Takmicenje1); foreach (GimnasticarUcesnik g2 in rt.Takmicenje1.Gimnasticari) { gimUcesnikDAO.Evict(g2); } } // Izbaci gimnasticara iz takmicenja 3 foreach (RezultatskoTakmicenje rt in rezTakDAO.FindByUcesnikTak3(g)) { rt.Takmicenje3.clearUcesnik(g); foreach (PoredakSprava p in rt.Takmicenje3.Poredak) { p.deleteGimnasticar(g, rt); } rt.Takmicenje3.PoredakPreskok.deleteGimnasticar(g, rt); tak3DAO.Update(rt.Takmicenje3); } foreach (Ocena o in ocene1) { ocenaDAO.Delete(o); } foreach (Ocena o in ocene3) { ocenaDAO.Delete(o); } // TODO: Brisi takmicara iz takmicenja II i IV. gimUcesnikDAO.Delete(g); takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id); takmicenje.LastModified = DateTime.Now; session.Transaction.Commit(); } } catch (Exception) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } throw; } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
public static void updateTakmicenjeOnChangedPropozicije(IList <RezultatskoTakmicenje> rezTakmicenja, IDictionary <int, Propozicije> origPropozicijeMap, IDictionary <int, Propozicije> origDescPropozicijeMap, Takmicenje takmicenje) { DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().Update(takmicenje); // ovo snima i propozicije za descriptions RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); PropozicijeDAO propozicijeDAO = DAOFactoryFactory.DAOFactory.GetPropozicijeDAO(); OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); IList <Ocena> oceneTak1 = null; foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (!rt.Propozicije.Equals(origPropozicijeMap[rt.Id])) { rezTakDAO.Update(rt); // ovo snima i propozicije i sve promene rezultata } else { rezTakDAO.Attach(rt, false); // moram da attachujem (ili da apdejtujem) sva rez. takmicenja zato } // sto se koriste u izracunavanju ekipnog poretka. } foreach (RezultatskoTakmicenjeDescription d in takmicenje.TakmicenjeDescriptions) { if (d.Propozicije.JednoTak4ZaSveKategorije != origDescPropozicijeMap[d.Id].JednoTak4ZaSveKategorije) { // Posto je opcija JednoTak4ZaSveKategorije onemogucena u propozicijama za konkretna rez. takmicenja, // moguce je da se promena u propozicijama za description ne prenosi na propozicije na konkretna // rez. takmicenja. Zato ponovo radim Update za sva rez. takmicenja, da bih bio siguran da ce promene // koje ce biti izvrsene u metodu updateImaEkipnoTakmicenje biti snimljene u bazu. foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (rt.TakmicenjeDescription.Equals(d)) { rezTakDAO.Update(rt); } } RezultatskoTakmicenje.updateImaEkipnoTakmicenje(rezTakmicenja, d); } } foreach (RezultatskoTakmicenje rt in rezTakmicenja) { if (!rt.Propozicije.Equals(origPropozicijeMap[rt.Id])) { if (oceneTak1 == null) { oceneTak1 = ocenaDAO.FindByDeoTakmicenja(takmicenje.Id, DeoTakmicenjaKod.Takmicenje1); } rt.updateRezultatiOnChangedPropozicije(origPropozicijeMap, takmicenje, rezTakmicenja, oceneTak1); } } if (oceneTak1 != null) { foreach (Ocena o in oceneTak1) { ocenaDAO.Evict(o); } } }
public static void addGimnasticariToRezTak(IList <GimnasticarUcesnik> gimnasticari, RezultatskoTakmicenje rezTak, IList <GimnasticarUcesnik> addedGimnasticari) { 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.FindByTakmicenjeKatDescFetch_Tak1_Gimnasticari( takmicenje.PrvoKolo.Id, rezTak.Kategorija.Naziv, 0); rezTak2 = rezultatskoTakmicenjeDAO.FindByTakmicenjeKatDescFetch_Tak1_Gimnasticari( takmicenje.DrugoKolo.Id, rezTak.Kategorija.Naziv, 0); if (takmicenje.ZbirViseKola) { if (takmicenje.TreceKolo != null) { rezTak3 = rezultatskoTakmicenjeDAO.FindByTakmicenjeKatDescFetch_Tak1_Gimnasticari( takmicenje.TreceKolo.Id, rezTak.Kategorija.Naziv, 0); } if (takmicenje.CetvrtoKolo != null) { rezTak4 = rezultatskoTakmicenjeDAO.FindByTakmicenjeKatDescFetch_Tak1_Gimnasticari( takmicenje.CetvrtoKolo.Id, rezTak.Kategorija.Naziv, 0); } } } OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO(); foreach (GimnasticarUcesnik g in gimnasticari) { if (rezTak.Takmicenje1.addGimnasticar(g)) { IList <Ocena> ocene = ocenaDAO.FindByGimnasticar(g, DeoTakmicenjaKod.Takmicenje1); if (takmicenje.FinaleKupa) { rezTak.Takmicenje1.updateRezultatiOnGimnasticarAdded(g, ocene, rezTak, rezTak1, rezTak2); } else if (takmicenje.ZbirViseKola) { rezTak.Takmicenje1.updateRezultatiOnGimnasticarAdded(g, rezTak, rezTak1, rezTak2, rezTak3, rezTak4); } else { rezTak.Takmicenje1.updateRezultatiOnGimnasticarAdded(g, ocene, rezTak); } foreach (Ocena o in ocene) { ocenaDAO.Evict(o); } addedGimnasticari.Add(g); } } 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); } if (addedGimnasticari.Count > 0) { DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO().Update(rezTak.Takmicenje1); } }