예제 #1
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            IList <UcesnikTakmicenja3> selItems = spravaGridUserControl1.DataGridViewUserControl
                                                  .getSelectedItems <UcesnikTakmicenja3>();

            if (selItems == null || selItems.Count != 1)
            {
                return;
            }

            UcesnikTakmicenja3 selItem = selItems[0];
            string             msg     = String.Format("Da li zelite da izbrisete kvalifikanta \"{0}\"?", selItem.Gimnasticar);

            if (!MessageDialogs.queryConfirmation(msg, "Kvalifikanti - " +
                                                  DeoTakmicenjaKodovi.toString(DeoTakmicenjaKod.Takmicenje3)))
            {
                return;
            }

            int selIndex = spravaGridUserControl1.DataGridViewUserControl.getSelectedItemIndex();

            rezTakmicenje.Takmicenje3.removeKvalifikant(selItem.Gimnasticar, sprava);
            refreshItems();
            spravaGridUserControl1.DataGridViewUserControl.setSelectedItemIndex(selIndex);
        }
예제 #2
0
        private void promeniKvalStatus(KvalifikacioniStatus kvalStatus)
        {
            RezultatUkupno rez = dataGridViewUserControl1.getSelectedItem <RezultatUkupno>();

            if (rez == null || rez.KvalStatus == kvalStatus)
            {
                return;
            }

            string msg = String.Empty;

            if (kvalStatus != KvalifikacioniStatus.None)
            {
                string msgFmt = "Da li zelite da oznacite sa \"{1}\" gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, kvalStatus);
            }
            else
            {
                string msgFmt = "Da li zelite da ponistite oznaku \"{1}\" za gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, rez.KvalStatus);
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        rez.KvalStatus = kvalStatus;
                        DAOFactoryFactory.DAOFactory.GetPoredakUkupnoDAO().Update(ActiveTakmicenje.getPoredakUkupno(deoTakKod));

                        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
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            dataGridViewUserControl1.refreshItems();
            dataGridViewUserControl1.setSelectedItem <RezultatUkupno>(rez);
        }
예제 #3
0
        private void deleteCommand()
        {
            if (SelectedItem == null)
            {
                return;
            }
            if (!MessageDialogs.queryConfirmation(deleteConfirmationMessage(SelectedItem), this.Text))
            {
                return;
            }

            ISession session = null;
            bool     ok      = false;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        if (refIntegrityDeleteDlg(SelectedItem))
                        {
                            delete(SelectedItem);
                            if (updateLastModified)
                            {
                                Takmicenje t = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(Sesija.Instance.TakmicenjeId);
                                t.LastModified = DateTime.Now;
                            }
                            session.Transaction.Commit();
                            ok = true;
                        }
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(
                    String.Format("{0} \n\n{1}", deleteErrorMessage(), ex.Message),
                    this.Text);
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            if (ok)
            {
                List <T> items = dataGridViewUserControl1.getItems <T>();
                items.Remove(SelectedItem);
                CurrencyManager currencyManager =
                    (CurrencyManager)this.BindingContext[dataGridViewUserControl1.DataGridView.DataSource];
                currencyManager.Refresh();
                updateEntityCount();
            }
        }
예제 #4
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (ActiveRaspored == null)
            {
                return;
            }

            string msgFmt = "Da li zelite da izbrisete raspored sudija?";

            if (!MessageDialogs.queryConfirmation(String.Format(
                                                      msgFmt, ""), this.Text))
            {
                return;
            }

            bool     deleted = false;
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO().Delete(ActiveRaspored);

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                        deleted = true;
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                Close();
                return;
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            if (!deleted)
            {
                return;
            }

            rasporedi.Remove(ActiveRaspored);

            tabOpened.RemoveAt(tabControl1.SelectedIndex);
            tabControl1.TabPages.Remove(tabControl1.SelectedTab);
        }
예제 #5
0
        private void btnDeleteTakmicenje_Click(object sender, EventArgs e)
        {
            RezultatskoTakmicenjeDescription desc = SelectedTakmicenje;

            if (desc == null)
            {
                return;
            }

            string msgFmt = "Da li zelite da izbrisete takmicenje '{0}'?";

            if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, desc.Naziv), this.Text))
            {
                return;
            }

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        deleteTakmicenje(desc);

                        Takmicenje t = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId);
                        t.LastModified = DateTime.Now;
                        session.Transaction.Commit();

                        // reload rez. takmicenja
                        setTakmicenja(DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO().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
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }
        }
예제 #6
0
 protected override bool refIntegrityDeleteDlg(KategorijaGimnasticara kategorija)
 {
     if (!DAOFactoryFactory.DAOFactory.GetGimnasticarDAO().existsGimnasticar(kategorija))
     {
         return(true);
     }
     else
     {
         string msg = "Postoje gimnasticari kategorije '{0}'. Ako " +
                      "je izbrisete, ovi gimnasticari nece imati navedenu kategoriju. " +
                      "Da li zelite da izbrisete kategoriju?";
         return(MessageDialogs.queryConfirmation(String.Format(msg, kategorija), this.Text));
     }
 }
예제 #7
0
 protected override bool refIntegrityDeleteDlg(Klub klub)
 {
     if (!DAOFactoryFactory.DAOFactory.GetGimnasticarDAO().existsGimnasticar(klub))
     {
         return(true);
     }
     else
     {
         string msg = "Postoje gimnasticari koji su clanovi kluba '{0}'. Ako " +
                      "ga izbrisete, ovi gimnasticari nece imati naveden klub. " +
                      "Da li zelite da izbrisete klub?";
         return(MessageDialogs.queryConfirmation(String.Format(msg, klub), this.Text));
     }
 }
예제 #8
0
        private void btnDeleteAll_Click(object sender, EventArgs e)
        {
            if (sudijskiOdbor.isEmpty())
            {
                return;
            }

            string msg = "Da li zelite da izbrisete sve sudije?";

            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            sudijskiOdbor.clearSudije();
            spravaGridUserControl1.setItems(sudijskiOdbor.Raspored);
        }
예제 #9
0
        private void btnDeleteKategorija_Click(object sender, EventArgs e)
        {
            if (SelectedKategorija == null)
            {
                return;
            }
            string msgFmt = "Da li zelite da izbrisete kategoriju '{0}'?";

            if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, SelectedKategorija), this.Text))
            {
                return;
            }

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        deleteKategorija(SelectedKategorija);

                        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);
            }
        }
예제 #10
0
        private void btnDeleteAll_Click(object sender, EventArgs e)
        {
            if (startLista.empty())
            {
                return;
            }

            string msg = "Da li zelite da izbrisete sve gimnasticare?";

            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            startLista.clear();
            dirty = true;
            spravaGridUserControl1.setItems(startLista.Nastupi);
        }
예제 #11
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            SudijaNaSpravi sudija =
                spravaGridUserControl1.getSelectedItem <SudijaNaSpravi>();

            if (sudija == null || sudija.Sudija == null)
            {
                return;
            }

            string msgFmt = "Da li zelite da izbrisete sudiju '{0}'?";

            if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, sudija.PrezimeIme), this.Text))
            {
                return;
            }

            sudijskiOdbor.removeSudija(sudija.Uloga);
            spravaGridUserControl1.setItems(sudijskiOdbor.Raspored);
        }
예제 #12
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            GimnasticarUcesnik selClan =
                dgwUserControlClanovi.getSelectedItem <GimnasticarUcesnik>();

            if (selClan == null)
            {
                return;
            }
            string msgFmt = "Da li zelite da izbrisete clana ekipe \"{0}\"?";

            if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, selClan), this.Text))
            {
                return;
            }

            Ekipa ekipa = (Ekipa)entity;

            // TODO: Check business rules
            ekipa.removeGimnasticar(selClan);

            setClanovi(ekipa.Gimnasticari);
        }
예제 #13
0
        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();
        }
예제 #14
0
        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);
                        RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();

                        RezultatskoTakmicenje rezTak1 = rezultatskoTakmicenjeDAO.FindByTakmicenjeKatDescFetch_Tak1_Gimnasticari(
                            takmicenje.PrvoKolo.Id, ActiveTakmicenje.Kategorija.Naziv, 0);
                        RezultatskoTakmicenje rezTak2 = rezultatskoTakmicenjeDAO.FindByTakmicenjeKatDescFetch_Tak1_Gimnasticari(
                            takmicenje.DrugoKolo.Id, ActiveTakmicenje.Kategorija.Naziv, 0);

                        PoredakSpravaFinaleKupa p = ActiveTakmicenje.Takmicenje1.getPoredakSpravaFinaleKupa(ActiveSprava);
                        p.create(ActiveTakmicenje, rezTak1, rezTak2);

                        rezultatskoTakmicenjeDAO.Evict(rezTak1);
                        rezultatskoTakmicenjeDAO.Evict(rezTak2);

                        DAOFactoryFactory.DAOFactory.GetPoredakSpravaFinaleKupaDAO().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
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            setItems();
        }
예제 #15
0
        private void deleteEkipaCmd()
        {
            Ekipa selEkipa = getSelectedEkipa();

            if (selEkipa == null)
            {
                return;
            }
            string msgFmt = "Da li zelite da izbrisete ekipu '{0}'?";

            if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, selEkipa), this.Text))
            {
                return;
            }

            int      index   = getSelectedEkipaIndex();
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);

                        RezultatskoTakmicenjeService.deleteEkipaFromRezTak(selEkipa, ActiveRezTakmicenje);

                        Takmicenje t = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId);
                        t.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
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            setEkipe(ActiveRezTakmicenje.Takmicenje1.Ekipe);
            if (index < ActiveRezTakmicenje.Takmicenje1.Ekipe.Count)
            {
                setSelectedEkipaIndex(index);
            }
            else if (ActiveRezTakmicenje.Takmicenje1.Ekipe.Count > 0)
            {
                setSelectedEkipaIndex(ActiveRezTakmicenje.Takmicenje1.Ekipe.Count - 1);
            }
            else
            {
                getActiveClanoviDataGridViewUserControl().clearItems();
            }
            onEkipeCellMouseClick();
        }
예제 #16
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            IList <Ocena> selItems = getDataGridViewUserControl()
                                     .getSelectedItems <Ocena>();

            if (selItems.Count != 1)
            {
                return;
            }

            Ocena  ocena = selItems[0];
            string msg   = String.Format(
                "Da li zelite da izbrisete ocenu za gimnasticara '{0}', za spravu '{1}'?",
                ocena.Gimnasticar.ImeSrednjeImePrezime, Sprave.toString(ActiveSprava));

            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);

                        DAOFactoryFactory.DAOFactory.GetOcenaDAO().Delete(ocena);

                        RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();
                        Takmicenje1DAO           tak1DAO   = DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO();
                        Takmicenje2DAO           tak2DAO   = DAOFactoryFactory.DAOFactory.GetTakmicenje2DAO();
                        Takmicenje3DAO           tak3DAO   = DAOFactoryFactory.DAOFactory.GetTakmicenje3DAO();
                        Takmicenje4DAO           tak4DAO   = DAOFactoryFactory.DAOFactory.GetTakmicenje4DAO();

                        IList <RezultatskoTakmicenje> rezTakmicenja = rezTakDAO.FindByGimnasticar(ocena.Gimnasticar);
                        foreach (RezultatskoTakmicenje rt in rezTakmicenja)
                        {
                            if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                            {
                                rt.Takmicenje1.updateRezultatiOnOcenaDeleted(ocena, rt);
                                tak1DAO.Update(rt.Takmicenje1);
                            }
                            else if (deoTakKod == DeoTakmicenjaKod.Takmicenje2 && rt.odvojenoTak2())
                            {
                                rt.Takmicenje2.ocenaDeleted(ocena, rt);
                                tak2DAO.Update(rt.Takmicenje2);
                            }
                            else if (deoTakKod == DeoTakmicenjaKod.Takmicenje3 && rt.odvojenoTak3())
                            {
                                rt.Takmicenje3.ocenaDeleted(ocena, rt);
                                tak3DAO.Update(rt.Takmicenje3);
                            }
                        }

                        IList <RezultatskoTakmicenje> ekipnaRezTakmicenja = rezTakDAO.FindEkipnaTakmicenja(takmicenje.Id);
                        foreach (RezultatskoTakmicenje rt in ekipnaRezTakmicenja)
                        {
                            Ekipa ekipa = rt.findEkipa(ocena.Gimnasticar, deoTakKod);
                            if (ekipa == null)
                            {
                                continue;
                            }
                            List <RezultatUkupno> rezultati = RezultatskoTakmicenjeService
                                                              .findRezultatiUkupnoForEkipa(takmicenje.Id, ekipa);
                            if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                            {
                                rt.Takmicenje1.updateRezultatEkipe(ekipa, rt, rezultati);
                                tak1DAO.Update(rt.Takmicenje1);
                            }
                            else if (deoTakKod == DeoTakmicenjaKod.Takmicenje4 && rt.odvojenoTak4())
                            {
                                rt.Takmicenje4.updateRezultatEkipe(ekipa, rt, rezultati);
                                tak4DAO.Update(rt.Takmicenje4);
                            }
                        }

                        GimnasticarUcesnikDAO gimUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO();
                        UcesnikTakmicenja2DAO ucTak2DAO     = DAOFactoryFactory.DAOFactory.GetUcesnikTakmicenja2DAO();
                        UcesnikTakmicenja3DAO ucTak3DAO     = DAOFactoryFactory.DAOFactory.GetUcesnikTakmicenja3DAO();

                        ISet <RezultatskoTakmicenje> rezTakSet = new HashSet <RezultatskoTakmicenje>();
                        foreach (RezultatskoTakmicenje rt in rezTakmicenja)
                        {
                            rezTakSet.Add(rt);
                        }
                        foreach (RezultatskoTakmicenje rt in ekipnaRezTakmicenja)
                        {
                            rezTakSet.Add(rt);
                        }

                        foreach (RezultatskoTakmicenje rezTak in rezTakSet)
                        {
                            if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
                            {
                                foreach (GimnasticarUcesnik g in rezTak.Takmicenje1.Gimnasticari)
                                {
                                    if (gimUcesnikDAO.Contains(g))
                                    {
                                        gimUcesnikDAO.Evict(g);
                                    }
                                }
                            }
                            else if (deoTakKod == DeoTakmicenjaKod.Takmicenje2)
                            {
                                foreach (UcesnikTakmicenja2 u in rezTak.Takmicenje2.Ucesnici)
                                {
                                    if (gimUcesnikDAO.Contains(u.Gimnasticar))
                                    {
                                        gimUcesnikDAO.Evict(u.Gimnasticar);
                                    }
                                    ucTak2DAO.Evict(u);
                                }
                            }
                            else if (deoTakKod == DeoTakmicenjaKod.Takmicenje3)
                            {
                                foreach (UcesnikTakmicenja3 u in rezTak.Takmicenje3.Ucesnici)
                                {
                                    if (gimUcesnikDAO.Contains(u.Gimnasticar))
                                    {
                                        gimUcesnikDAO.Evict(u.Gimnasticar);
                                    }
                                    ucTak3DAO.Evict(u);
                                }
                            }
                        }

                        // NOTE: Ovde nisam mogao da koristim takmicenjeDAO.Update(takmicenje) jer mi prijavljuje gresku
                        // da u sesiji vec postoji drugi objekat sa istim Id-om (verovatno je dobavljen u nekom od metoda
                        // gore). Zato uvek koristim takmicenjeDAO.FindById(takmicenje.Id) kada apdejtujem LastModified da
                        // bih bio siguran da mi se ovakve greske nece pojavljivati.
                        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);
            }

            List <Ocena> activeOcene = ocene[calculateOceneKey(ActiveKategorija, ActiveSprava)];

            activeOcene.Remove(ocena);

            setOcene(activeOcene);
        }
예제 #17
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            IList <GimnasticarUcesnik> selItems = getActiveDataGridViewUserControl()
                                                  .getSelectedItems <GimnasticarUcesnik>();

            if (selItems == null || selItems.Count == 0)
            {
                return;
            }

            bool delete;

            if (selItems.Count == 1)
            {
                delete = MessageDialogs.queryConfirmation(
                    deleteConfirmationMessage(selItems[0]), this.Text);
            }
            else
            {
                delete = MessageDialogs.queryConfirmation(
                    deleteConfirmationMessage(), this.Text);
            }
            if (!delete)
            {
                return;
            }

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        RezultatskoTakmicenjeService.deleteGimnasticariFromRezTak(selItems, ActiveRezTakmicenje);

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();

                        setGimnasticari(ActiveRezTakmicenje.Takmicenje1.Gimnasticari);
                        updateGimnasticariCount();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(
                    String.Format("{0} \n\n{1}", deleteErrorMessage(), ex.Message),
                    this.Text);
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }
        }
        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();
        }
예제 #19
0
        private void deleteCmd()
        {
            IList <GimnasticarUcesnik> selItems = getActiveDataGridViewUserControl().getSelectedItems <GimnasticarUcesnik>();

            if (selItems.Count == 0)
            {
                return;
            }

            string msg;

            if (selItems.Count == 1)
            {
                msg = deleteConfirmationMessage(selItems[0].ImeSrednjeImePrezimeDatumRodjenja);
            }
            else
            {
                msg = deleteConfirmationMessage();
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            if (selItems.Count == 1)
            {
                msg = String.Format("Bice izbrisane sve ocene za gimnasticara \"{0}\".",
                                    selItems[0].ImeSrednjeImePrezimeDatumRodjenja);
            }
            else
            {
                msg = "Bice izbrisane sve ocene za selektovane gimnasticare.";
            }
            msg += " Da li zelite da nastavite?";
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            List <GimnasticarUcesnik> activeGimnasticari = gimnasticari[tabControl1.SelectedIndex];

            foreach (GimnasticarUcesnik g in selItems)
            {
                try
                {
                    deleteGimnasticar(g);
                    activeGimnasticari.Remove(g);
                }
                catch (Exception ex)
                {
                    MessageDialogs.showError(ex.Message, this.Text);
                }
            }

            setGimnasticari(activeGimnasticari);
            if (!getActiveDataGridViewUserControl().isSorted())
            {
                getActiveDataGridViewUserControl().refreshItems();
            }
            updateGimnasticariCount();
        }
예제 #20
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            Takmicenje selTakmicenje = dataGridViewUserControl1.getSelectedItem <Takmicenje>();

            if (selTakmicenje == null)
            {
                return;
            }

            string msgFmt = "Da li zelite da izbrisete takmicenje \"{0}\"?";

            if (!MessageDialogs.queryConfirmation(String.Format(
                                                      msgFmt, selTakmicenje), this.Text))
            {
                return;
            }

            if (selTakmicenje.Id == currTakmicenjeId)
            {
                string msg = "Nije dozvoljeno brisanje takmicenja koje je trenutno otvoreno.";
                MessageDialogs.showMessage(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);
                        TakmicenjeService.deleteTakmicenje(selTakmicenje, true);
                        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);
            }

            takmicenja.Remove(selTakmicenje);
            setTakmicenja(takmicenja);
            if (dataGridViewUserControl1.isSorted())
            {
                dataGridViewUserControl1.refreshItems();
            }
            updateTakmicenjaCount();
        }
예제 #21
0
        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);
                        PoredakEkipnoDAO poredakEkipnoDAO = DAOFactoryFactory.DAOFactory.GetPoredakEkipnoDAO();

                        // TODO4: Mozda bi na svim ovakvim mestima ipak bilo bolje da se ponovo ucitava poredak iz baze.
                        // Ako se, recimo, ocene unose (i poredak azurira) na posebnom tredu, tada ce ovaj objekat za
                        // ekipni poredak sadrzavati zastarele podatke.
                        PoredakEkipno p = ActiveTakmicenje.getPoredakEkipno(deoTakKod);
                        poredakEkipnoDAO.Attach(p, false);

                        p.create(ActiveTakmicenje, ekipaRezultatiUkupnoMap);
                        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);
                return;
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            setEkipe();
        }