Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
        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();
            }
        }