コード例 #1
0
        private void dodajPenalizacijuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IList <RezultatEkipno> rezultatiEkipe = dataGridViewUserControl1.getSelectedItems <RezultatEkipno>();

            if (rezultatiEkipe.Count != 1)
            {
                return;
            }
            RezultatEkipno r = rezultatiEkipe[0];

            PenalizacijaForm form = new PenalizacijaForm(r.Penalty, takmicenje);

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Nullable <float> penalty = null;

            if (form.Penalizacija.Trim() != String.Empty)
            {
                penalty = float.Parse(form.Penalizacija);
            }
            PoredakEkipno p = ActiveTakmicenje.getPoredakEkipno(deoTakKod);

            p.promeniPenalizaciju(r, penalty, ActiveTakmicenje);

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        DAOFactoryFactory.DAOFactory.GetEkipaDAO().Update(r.Ekipa);
                        DAOFactoryFactory.DAOFactory.GetPoredakEkipnoDAO().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);
                return;
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            dataGridViewUserControl1.setItems <RezultatEkipno>(p.getRezultati());
            dataGridViewUserControl1.setSelectedItem <RezultatEkipno>(r);
        }
コード例 #2
0
ファイル: RezultatiEkipeForm.cs プロジェクト: stankela/bilten
        private void dodajPenalizacijuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IList<RezultatEkipno> rezultatiEkipe = dataGridViewUserControl1.getSelectedItems<RezultatEkipno>();
            if (rezultatiEkipe.Count != 1)
                return;
            RezultatEkipno rezultat = rezultatiEkipe[0];

            PenalizacijaForm form = new PenalizacijaForm(rezultat, takmicenje);
            if (form.ShowDialog() != DialogResult.OK)
                return;

            if (form.Penalizacija.Trim() == String.Empty)
                rezultat.addPenalty(null);
            else
                rezultat.addPenalty(float.Parse(form.Penalizacija));
            // Posto se ekipni poredak svaki put nanovo kreira iz ocena, moram
            // da zapamtim penalizaciju u ekipi (metod Poredak.create koristi Ekipa.Penalty)
            rezultat.Ekipa.Penalty = rezultat.Penalty;

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                dataContext.Save(rezultat.Ekipa);
                if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                {
                    ActiveTakmicenje.Takmicenje1.PoredakEkipno.calculatePoredak(ActiveTakmicenje);
                    dataContext.Save(ActiveTakmicenje.Takmicenje1.PoredakEkipno);
                }
                else
                {
                    ActiveTakmicenje.Takmicenje4.Poredak.calculatePoredak(ActiveTakmicenje);
                    dataContext.Save(ActiveTakmicenje.Takmicenje4.Poredak);
                }
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            dataGridViewUserControl1.setItems<RezultatEkipno>(
                ActiveTakmicenje.getPoredakEkipno(deoTakKod).getRezultati());
            dataGridViewUserControl1.setSelectedItem<RezultatEkipno>(rezultat);
        }