예제 #1
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);
        }
예제 #2
0
        public static void deleteTakmicenje(Takmicenje t, bool proveriFinala)
        {
            TakmicenjeDAO takmicenjeDAO = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO();

            if (proveriFinala)
            {
                // Proveri da li se neko takmicenje (finale kupa ili zbir vise kola) referise na ovo takmicenje.
                IList <Takmicenje> finala = takmicenjeDAO.FindFinala(t);
                if (finala.Count > 0)
                {
                    string msg = "Takmicenje \"" + t.ToString() + "\" je nemoguce izbrisati jer je ono jedno od kola za " +
                                 "sledeca finala:\n\n";
                    foreach (Takmicenje f in finala)
                    {
                        msg += f.ToString() + "\n";
                    }
                    throw new BusinessException(msg);
                }
            }

            // brisi ocene
            OcenaDAO ocenaDAO = DAOFactoryFactory.DAOFactory.GetOcenaDAO();

            foreach (Ocena o in ocenaDAO.FindByTakmicenje(t.Id))
            {
                ocenaDAO.Delete(o);
            }

            // brisi rasporede nastupa
            RasporedNastupaDAO rasporedNastupaDAO = DAOFactoryFactory.DAOFactory.GetRasporedNastupaDAO();

            foreach (RasporedNastupa r in rasporedNastupaDAO.FindByTakmicenje(t.Id))
            {
                rasporedNastupaDAO.Delete(r);
            }

            // brisi rasporede sudija
            RasporedSudijaDAO rasporedSudijaDAO = DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO();

            foreach (RasporedSudija r in rasporedSudijaDAO.FindByTakmicenje(t.Id))
            {
                rasporedSudijaDAO.Delete(r);
            }

            // brisi sudije ucesnike
            SudijaUcesnikDAO sudijaUcesnikDAO = DAOFactoryFactory.DAOFactory.GetSudijaUcesnikDAO();

            foreach (SudijaUcesnik s in sudijaUcesnikDAO.FindByTakmicenje(t.Id))
            {
                sudijaUcesnikDAO.Delete(s);
            }

            // brisi rezultatska takmicenja i ekipe
            RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();
            EkipaDAO ekipaDAO = DAOFactoryFactory.DAOFactory.GetEkipaDAO();

            foreach (RezultatskoTakmicenje r in rezultatskoTakmicenjeDAO.FindByTakmicenje(t.Id))
            {
                foreach (Ekipa e in r.Takmicenje1.Ekipe)
                {
                    ekipaDAO.Delete(e);
                }
                rezultatskoTakmicenjeDAO.Delete(r);
            }

            // brisi gimnasticare ucesnike
            GimnasticarUcesnikDAO gimnasticarUcesnikDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO();

            foreach (GimnasticarUcesnik g in gimnasticarUcesnikDAO.FindByTakmicenje(t.Id))
            {
                gimnasticarUcesnikDAO.Delete(g);
            }

            // brisi klubove ucesnike
            KlubUcesnikDAO klubUcesnikDAO = DAOFactoryFactory.DAOFactory.GetKlubUcesnikDAO();

            foreach (KlubUcesnik k in klubUcesnikDAO.FindByTakmicenje(t.Id))
            {
                klubUcesnikDAO.Delete(k);
            }

            // brisi drzave ucesnike
            DrzavaUcesnikDAO drzavaUcesnikDAO = DAOFactoryFactory.DAOFactory.GetDrzavaUcesnikDAO();

            foreach (DrzavaUcesnik d in drzavaUcesnikDAO.FindByTakmicenje(t.Id))
            {
                drzavaUcesnikDAO.Delete(d);
            }

            // brisi kategorije
            TakmicarskaKategorijaDAO takmicarskaKategorijaDAO = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO();

            foreach (TakmicarskaKategorija k in takmicarskaKategorijaDAO.FindByTakmicenje(t.Id))
            {
                takmicarskaKategorijaDAO.Delete(k);
            }

            // brisi descriptions
            RezultatskoTakmicenjeDescriptionDAO rezTakDescDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDescriptionDAO();

            foreach (RezultatskoTakmicenjeDescription d in rezTakDescDAO.FindByTakmicenje(t.Id))
            {
                rezTakDescDAO.Delete(d);
            }

            // brisi takmicenje
            takmicenjeDAO.Delete(t);
        }