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 btnDodajIzPrethTak_Click(object sender, EventArgs e) { OtvoriTakmicenjeForm form = null; try { form = new OtvoriTakmicenjeForm(1, gimnastika); if (form.ShowDialog() != DialogResult.OK) { return; } } catch (Exception ex) { MessageDialogs.showError(ex.Message, this.Text); return; } IList <TakmicarskaKategorija> kategorije = null; ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); kategorije = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO() .FindByTakmicenje(form.SelTakmicenja[0].Id); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); return; } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } IList <string> kategorijeStr = new List <string>(); foreach (TakmicarskaKategorija k in kategorije) { kategorijeStr.Add(k.Naziv); } IList <int> checkedItems = new List <int>(); for (int i = 0; i < kategorijeStr.Count; ++i) { checkedItems.Add(i); } CheckListForm form2 = new CheckListForm( kategorijeStr, checkedItems, form.SelTakmicenja[0].ToString(), "Izaberite kategorije", true, "Izaberite kategorije", true); if (form2.ShowDialog() != DialogResult.OK) { return; } session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); IList <TakmicarskaKategorija> takKategorije = new List <TakmicarskaKategorija>(); int numAdded = 0; foreach (int index in form2.CheckedIndices) { try { TakmicenjeService.addTakmicarskaKategorija( new TakmicarskaKategorija(kategorijeStr[index]), takmicenjeId); ++numAdded; } catch (BusinessException) { // ignorisi } } if (numAdded > 0) { Takmicenje t = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId); t.LastModified = DateTime.Now; session.Transaction.Commit(); // reload kategorije setKategorije(DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO().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 { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } }
private void mnSpraveKojeSeBoduju_Click(object sender, EventArgs e) { IList <RezultatEkipno> rezultatiEkipe = dataGridViewUserControl1.getSelectedItems <RezultatEkipno>(); if (rezultatiEkipe.Count != 1) { return; } RezultatEkipno rezultat = rezultatiEkipe[0]; List <int> checkedItems = new List <int>(); foreach (Sprava s in Sprave.getSprave(gimnastika)) { if (rezultat.Ekipa.getSpravaSeBoduje(s)) { checkedItems.Add(Sprave.indexOf(s, gimnastika)); } } CheckListForm form = new CheckListForm( new List <string>(Sprave.getSpraveNazivi(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(gimnastika); IList <Sprava> spraveKojeSeBoduju = new List <Sprava>(); rezultat.Ekipa.clearSpraveKojeSeBoduju(); foreach (int i in form.CheckedIndices) { rezultat.Ekipa.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.GetEkipaDAO().Update(rezultat.Ekipa); PoredakEkipnoDAO poredakEkipnoDAO = DAOFactoryFactory.DAOFactory.GetPoredakEkipnoDAO(); PoredakEkipno p = ActiveTakmicenje.getPoredakEkipno(deoTakKod); poredakEkipnoDAO.Attach(p, false); p.recreateRezultat(rezultat.Ekipa, ActiveTakmicenje, RezultatskoTakmicenjeService.findRezultatiUkupnoForEkipa(takmicenje.Id, rezultat.Ekipa)); poredakEkipnoDAO.Update(p); 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); } dataGridViewUserControl1.setItems <RezultatEkipno>( ActiveTakmicenje.getPoredakEkipno(deoTakKod).getRezultati()); // posto je poredak ponovo kreiran, i rezultat za ekipu je nov objekat pa moram da ga iznova potrazim dataGridViewUserControl1.setSelectedItem <RezultatEkipno>( ActiveTakmicenje.getPoredakEkipno(deoTakKod).getRezultat(rezultat.Ekipa)); }
private void btnNew_Click(object sender, EventArgs e) { IList <TakmicarskaKategorija> kategorije; ISession session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); kategorije = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO().FindByTakmicenje(takmicenje.Id); } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showError(ex.Message, this.Text); return; } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } IList <string> kategorijeStr = new List <string>(); foreach (TakmicarskaKategorija k in kategorije) { kategorijeStr.Add(k.Naziv); } string msg = "Izaberite kategorije za koje vazi raspored sudija"; CheckListForm form = new CheckListForm(kategorijeStr, new List <int>(), msg, "Kategorije", true, msg, true); if (form.ShowDialog() != DialogResult.OK) { return; } IList <TakmicarskaKategorija> selKategorije = new List <TakmicarskaKategorija>(); foreach (int i in form.CheckedIndices) { selKategorije.Add(kategorije[i]); } RasporedSudija newRaspored = null; bool added = false; session = null; try { using (session = NHibernateHelper.Instance.OpenSession()) using (session.BeginTransaction()) { CurrentSessionContext.Bind(session); newRaspored = new RasporedSudija(selKategorije, deoTakKod, takmicenje.Gimnastika); DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO().Add(newRaspored); takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id); takmicenje.LastModified = DateTime.Now; session.Transaction.Commit(); added = true; } } catch (Exception ex) { if (session != null && session.Transaction != null && session.Transaction.IsActive) { session.Transaction.Rollback(); } MessageDialogs.showMessage(ex.Message, this.Text); } finally { CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory); } if (!added) { Close(); return; } rasporedi.Add(newRaspored); tabOpened.Add(false); createTab(newRaspored); if (tabControl1.SelectedIndex != tabControl1.TabPages.Count - 1) { tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1; } else { onSelectedIndexChanged(); } }