private void btnIzracunaj_Click(object sender, EventArgs e) { string 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); RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO(); RezultatskoTakmicenje rezTak1 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.PrvoKolo.Id, ActiveTakmicenje.Kategorija.Naziv, 0); RezultatskoTakmicenje rezTak2 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.DrugoKolo.Id, ActiveTakmicenje.Kategorija.Naziv, 0); RezultatskoTakmicenje rezTak3 = null; if (takmicenje.TreceKolo != null) { rezTak3 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.TreceKolo.Id, ActiveTakmicenje.Kategorija.Naziv, 0); } RezultatskoTakmicenje rezTak4 = null; if (takmicenje.CetvrtoKolo != null) { rezTak4 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe( takmicenje.CetvrtoKolo.Id, ActiveTakmicenje.Kategorija.Naziv, 0); } ActiveTakmicenje.Takmicenje1.PoredakEkipnoZbirViseKola.create(ActiveTakmicenje, rezTak1, rezTak2, rezTak3, rezTak4); rezultatskoTakmicenjeDAO.Evict(rezTak1); rezultatskoTakmicenjeDAO.Evict(rezTak2); if (rezTak3 != null) { rezultatskoTakmicenjeDAO.Evict(rezTak3); } if (rezTak4 != null) { rezultatskoTakmicenjeDAO.Evict(rezTak4); } DAOFactoryFactory.DAOFactory.GetPoredakEkipnoZbirViseKolaDAO() .Update(ActiveTakmicenje.Takmicenje1.PoredakEkipnoZbirViseKola); 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(); }
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); } }