コード例 #1
0
        private void deleteKategorija(TakmicarskaKategorija k)
        {
            TakmicarskaKategorijaDAO takKatDAO = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO();

            takKatDAO.Attach(k, false);

            IList <RezultatskoTakmicenje> rezTakmicenja = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO()
                                                          .FindByKategorija(k);

            if (rezTakmicenja.Count > 0)
            {
                throw new BusinessException("Morate najpre da izbrisete kategoriju iz svih takmicenja.");
            }

            IList <GimnasticarUcesnik> gimnasticari = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO()
                                                      .FindByKategorija(k);

            if (gimnasticari.Count > 0)
            {
                throw new BusinessException("Morate najpre da izbrisete sve gimnasticare za datu kategoriju.");
            }

            TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO();
            Takmicenje    t             = takmicenjeDAO.FindById(takmicenjeId);

            t.removeKategorija(SelectedKategorija);

            takKatDAO.Delete(k);
            takmicenjeDAO.Update(t);
        }
コード例 #2
0
        private void btnMoveDownKategorija_Click(object sender, EventArgs e)
        {
            TakmicarskaKategorija k = SelectedKategorija;

            if (k == null)
            {
                return;
            }
            if (treeViewTakmicenja.Nodes.Count > 0)
            {
                MessageDialogs.showMessage("Kategorije je moguce pomerati pre nego sto se dodaju takmicenja.", this.Text);
                return;
            }

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO().Attach(k, false);
                        TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO();
                        Takmicenje    takmicenje    = takmicenjeDAO.FindById(takmicenjeId);
                        if (takmicenje.moveKategorijaDown(k))
                        {
                            takmicenjeDAO.Update(takmicenje);

                            takmicenje.LastModified = DateTime.Now;
                            session.Transaction.Commit();

                            // reload kategorije
                            setKategorije(DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO().FindByTakmicenje(takmicenjeId));
                            SelectedKategorija = k;
                        }
                    }
            }
            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
        public static void prebrisiTakmicenje(Takmicenje t, IList <KlubUcesnik> klubovi, IList <DrzavaUcesnik> drzave,
                                              IList <GimnasticarUcesnik> gimnasticari, IList <RezultatskoTakmicenje> rezTakmicenja,
                                              IList <SudijaUcesnik> sudije, IList <RasporedSudija> rasporediSudija, IList <RasporedNastupa> rasporediNastupa,
                                              IList <Ocena> ocene)
        {
            TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO();
            Takmicenje    t2            = takmicenjeDAO.FindByNazivGimnastikaDatum(t.Naziv, t.Gimnastika, t.Datum);

            if (t2 != null)
            {
                // Posto cemo izbrisati postojece takmicenje i uvesti ga sa novim ID-om, moramo da
                // promenimo sva finala koja se referisu na ovo takmicenje da koriste novi ID.
                IList <Takmicenje> finala = takmicenjeDAO.FindFinala(t2);
                if (finala.Count > 0)
                {
                    takmicenjeDAO.Add(t);
                    foreach (Takmicenje f in finala)
                    {
                        if (f.PrvoKolo != null && f.PrvoKolo.Id == t2.Id)
                        {
                            f.PrvoKolo = t;
                        }
                        if (f.DrugoKolo != null && f.DrugoKolo.Id == t2.Id)
                        {
                            f.DrugoKolo = t;
                        }
                        if (f.TreceKolo != null && f.TreceKolo.Id == t2.Id)
                        {
                            f.TreceKolo = t;
                        }
                        if (f.CetvrtoKolo != null && f.CetvrtoKolo.Id == t2.Id)
                        {
                            f.CetvrtoKolo = t;
                        }
                        takmicenjeDAO.Update(f);
                    }
                }
                deleteTakmicenje(t2, false);
            }
            addTakmicenje(t, klubovi, drzave, gimnasticari, rezTakmicenja, sudije, rasporediSudija, rasporediNastupa, ocene);
        }
コード例 #4
0
        public static void addTakmicarskaKategorija(TakmicarskaKategorija kat, int takmicenjeId)
        {
            Notification notification = new Notification();

            kat.validate(notification);
            if (!notification.IsValid())
            {
                throw new BusinessException(notification);
            }

            if (DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO().existsKategorijaNaziv(kat.Naziv, takmicenjeId))
            {
                notification.RegisterMessage("Naziv", "Kategorija sa datim nazivom vec postoji.");
                throw new BusinessException(notification);
            }

            TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO();
            Takmicenje    t             = takmicenjeDAO.FindById(takmicenjeId);

            t.addKategorija(kat);
            takmicenjeDAO.Update(t);
        }
コード例 #5
0
        private void deleteTakmicenje(RezultatskoTakmicenjeDescription desc)
        {
            RezultatskoTakmicenjeDescriptionDAO rezTakDescDAO
                = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO();

            rezTakDescDAO.Attach(desc, false);

            RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();

            foreach (RezultatskoTakmicenje rt in rezTakDAO.FindByDescription(desc))
            {
                rezTakDAO.Delete(rt);
            }

            // Ne apdejtujem redne brojeve za preostala rez. takmicenja zato sto je redosled nepromenjen

            TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO();
            Takmicenje    takmicenje    = takmicenjeDAO.FindById(takmicenjeId);

            takmicenje.removeTakmicenjeDescription(desc);
            takmicenjeDAO.Update(takmicenje);

            rezTakDescDAO.Delete(desc);
        }