Пример #1
0
        public virtual void addEkipa(Ekipa e, IList<Ocena> ocene,
            RezultatskoTakmicenje rezTak)
        {
            /*
            RezultatEkipno r = new RezultatEkipno();
            r.Ekipa = e;
            Rezultati.Add(r);

            foreach (Ocena o in ocene)
            {
                if (e.Gimnasticari.Contains(o.Gimnasticar))
                    r.addOcena(o);
            }

            rankRezultati();
            updateKvalStatus(rezTak.Propozicije);
             */
        }
Пример #2
0
 public virtual void ekipaDeleted(Ekipa e, RezultatskoTakmicenje rezTak)
 {
     PoredakEkipno.deleteEkipa(e, rezTak);
 }
Пример #3
0
 public virtual void ekipaAdded(Ekipa e, IList<Ocena> ocene,
     RezultatskoTakmicenje rezTak)
 {
     PoredakEkipno.addEkipa(e, ocene, rezTak);
 }
Пример #4
0
 public virtual bool canAddEkipa(Ekipa ekipa)
 {
     try
     {
         checkAdd(ekipa);
         return true;
     }
     catch (BusinessException)
     {
         return false;
     }
 }
Пример #5
0
 public virtual void addEkipa(Ekipa ekipa)
 {
     checkAdd(ekipa);
     Ekipe.Add(ekipa);
 }
Пример #6
0
 private void setRezultatiUkupno(Ekipa e)
 {
     dataGridViewUserControl2.setItems<RezultatUkupno>(e.getRezultatiUkupno(sviRezultatiUkupno));
     dataGridViewUserControl2.sort<RezultatUkupno>("PrezimeIme", ListSortDirection.Ascending);
 }
Пример #7
0
        public static List <RezultatUkupno> findRezultatiUkupnoForEkipa(int takmicenjeId, Ekipa e)
        {
            List <RezultatUkupno>    result    = new List <RezultatUkupno>();
            RezultatskoTakmicenjeDAO rezTakDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();

            foreach (GimnasticarUcesnik g in e.Gimnasticari)
            {
                result.Add(Takmicenje.getRezultatUkupnoForEkipniRezultat(
                               g, rezTakDAO.FindRezultatiUkupnoForGimnasticar(takmicenjeId, g.Id)));
            }
            return(result);
        }
Пример #8
0
 private void checkAdd(Ekipa ekipa)
 {
     if (existsEkipaNaziv(ekipa.Naziv))
         throw new BusinessException("Naziv", "Ekipa sa datim nazivom vec postoji.");
     if (existsEkipaKod(ekipa.Kod))
         throw new BusinessException("Kod", "Ekipa sa datim kodom vec postoji.");
 }
Пример #9
0
        void cloneTakmicenje(Takmicenje takmicenje, Takmicenje from, List<RezultatskoTakmicenjeDescription> descriptionsFrom,
            List<TakmicarskaKategorija> kategorijeFrom)
        {
            dataContext.Attach(takmicenje, false);
            dataContext.Attach(from, false);
            foreach (RezultatskoTakmicenjeDescription d in descriptionsFrom)
            {
                dataContext.Attach(d, false);
            }

            // TODO3: Ovaj metod bi trebalo updateovati svaki put kada se promene neka svojstva koja se kloniraju.

            takmicenje.BrojEOcena = from.BrojEOcena;
            takmicenje.BrojDecimalaD = from.BrojDecimalaD;
            takmicenje.BrojDecimalaE1 = from.BrojDecimalaE1;
            takmicenje.BrojDecimalaE = from.BrojDecimalaE;
            takmicenje.BrojDecimalaPen = from.BrojDecimalaPen;
            takmicenje.BrojDecimalaTotal = from.BrojDecimalaTotal;
            takmicenje.ZavrsenoTak1 = false;

            // TODO: Kreiraj metod u klasi TakmicarskaKategorija koji vraca kategorije sortirane po rednom broju.
            // Pronadji sva mesta na kojima sortiram kategorije po rednom broju, i zameni ih pozivom novog metoda.
            // Uradi isto i za klasu RezultatskoTakmicenjeDescription, a i za druge ako postoje.
            PropertyDescriptor propDesc =
                TypeDescriptor.GetProperties(typeof(TakmicarskaKategorija))["RedBroj"];
            kategorijeFrom.Sort(new SortComparer<TakmicarskaKategorija>(
                propDesc, ListSortDirection.Ascending));
            foreach (TakmicarskaKategorija k in kategorijeFrom)
            {
                takmicenje.addKategorija(new TakmicarskaKategorija(k.Naziv, takmicenje.Gimnastika));
            }

            PropertyDescriptor propDesc2 =
                TypeDescriptor.GetProperties(typeof(RezultatskoTakmicenjeDescription))["RedBroj"];
            descriptionsFrom.Sort(new SortComparer<RezultatskoTakmicenjeDescription>(
                propDesc2, ListSortDirection.Ascending));

            // prvi description je uvek kao naziv takmicenja.
            RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription();
            desc.Naziv = takmicenje.Naziv;
            desc.Propozicije = new Propozicije();
            takmicenje.addTakmicenjeDescription(desc);
            for (int i = 1; i < descriptionsFrom.Count; i++)
            {
                desc = new RezultatskoTakmicenjeDescription();
                desc.Naziv = descriptionsFrom[i].Naziv;
                desc.Propozicije = new Propozicije();
                takmicenje.addTakmicenjeDescription(desc);
            }

            IList<RezultatskoTakmicenje> rezTakmicenja = new List<RezultatskoTakmicenje>();
            foreach (RezultatskoTakmicenjeDescription d in takmicenje.TakmicenjeDescriptions)
            {
                foreach (TakmicarskaKategorija k in takmicenje.Kategorije)
                {
                    RezultatskoTakmicenje rt = new RezultatskoTakmicenje(takmicenje,
                        k, d, new Propozicije());
                    rezTakmicenja.Add(rt);
                }
            }

            List<RezultatskoTakmicenjeDescription> descriptions =
                new List<RezultatskoTakmicenjeDescription>(takmicenje.TakmicenjeDescriptions);
            propDesc = TypeDescriptor.GetProperties(typeof(RezultatskoTakmicenjeDescription))["RedBroj"];
            descriptions.Sort(new SortComparer<RezultatskoTakmicenjeDescription>(
                propDesc, ListSortDirection.Ascending));
            for (int i = 0; i < descriptions.Count; i++)
            {
                clonePropozicije(descriptions[i].Propozicije, descriptionsFrom[i].Propozicije);
            }

            IList<RezultatskoTakmicenje> rezTakmicenjaFrom = new List<RezultatskoTakmicenje>();
            foreach (RezultatskoTakmicenje rt in loadRezTakmicenja(from.Id))
            {
                // filtriraj rez. takmicenja.
                ISet<TakmicarskaKategorija> katFromSet = new HashSet<TakmicarskaKategorija>(kategorijeFrom);
                ISet<RezultatskoTakmicenjeDescription> descFromSet
                    = new HashSet<RezultatskoTakmicenjeDescription>(descriptionsFrom);
                if (katFromSet.Contains(rt.Kategorija) && descFromSet.Contains(rt.TakmicenjeDescription))
                {
                    rezTakmicenjaFrom.Add(rt);
                }

            }
            foreach (RezultatskoTakmicenje rezTak in rezTakmicenja)
            {
                RezultatskoTakmicenje rezTak2 = findRezTakmicenje(rezTakmicenjaFrom, rezTak.TakmicenjeDescription.Naziv,
                    rezTak.Kategorija);
                clonePropozicije(rezTak.Propozicije, rezTak2.Propozicije);
            }

            bool kombAdded = false;
            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                if (!rt.TakmicenjeDescription.Propozicije.JednoTak4ZaSveKategorije)
                {
                    rt.ImaEkipnoTakmicenje = true;
                    rt.KombinovanoEkipnoTak = false;
                }
                else
                {
                    if (!kombAdded)
                    {
                        rt.ImaEkipnoTakmicenje = true;
                        rt.KombinovanoEkipnoTak = true;
                        kombAdded = true;
                    }
                    else
                    {
                        rt.ImaEkipnoTakmicenje = false;
                        rt.KombinovanoEkipnoTak = false;
                    }
                }
            }
            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                bool deletedTak2, deletedTak3, deletedTak4;

                rt.updateTakmicenjaFromChangedPropozicije(
                    out deletedTak2, out deletedTak3, out deletedTak4);

                /*if (deletedTak2)
                    dataContext.Delete(rt.Takmicenje2);
                if (deletedTak3)
                    dataContext.Delete(rt.Takmicenje3);
                if (deletedTak4)
                    dataContext.Delete(rt.Takmicenje4);*/
            }

            IDictionary<GimnasticarUcesnik, GimnasticarUcesnik> gimnasticariMap =
                new Dictionary<GimnasticarUcesnik, GimnasticarUcesnik>();
            List<GimnasticarUcesnik> dupliGimnasticari = new List<GimnasticarUcesnik>();
            foreach (TakmicarskaKategorija kat in takmicenje.Kategorije)
            {
                foreach (GimnasticarUcesnik g in loadGimnasticari(from, kat.Naziv))
                {
                    if (!gimnasticariMap.ContainsKey(g))
                    {
                        // Ovo proveravam zato sto se vec desilo da isti gimnasticar bude prijavljen u dve razlicite
                        // kategorije (program to ne proverava). Npr. na takmicenju I KOLO PGL SRBIJE MSG od 21.05.2011.
                        // Sinisa Jurkovic je bio prijavljen u dve kategorije. U novoj verziji programa nije moguce da
                        // isti gimnsticar bude prijavljen u dve razlicite kategorije.

                        GimnasticarUcesnik g2 = createGimnasticarUcesnik(g, kat);
                        gimnasticariMap.Add(g2, g2);
                    }
                    else
                        dupliGimnasticari.Add(g);
                }
            }
            // Proveravanje gimnasticara koji su prijavljeni u vise kategorija je samo za legacy baze. Program je vec
            // promenjen da ne dozvoljava da isti gimnasticar bude prijavljen u vise kategorija.
            foreach (GimnasticarUcesnik g in dupliGimnasticari)
            {
                if (gimnasticariMap.ContainsKey(g))
                    gimnasticariMap.Remove(g);
            }

            // TODO2: Izgleda da prikazuje rezultate za sprave u takmicenju I cak i kada se u propozicijama selektuje da
            // ne postoji takmicenje III. U stvari tako i treba zato sto ipak treba da postoji pregled nastupa po spravama
            // cak i kada se selektuje da ne postoji takmicenje III. Tako da ovo treba da ostane.

            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaFrom, rt.TakmicenjeDescription.Naziv,
                    rt.Kategorija);
                foreach (GimnasticarUcesnik g in rtFrom.Takmicenje1.Gimnasticari)
                {
                    if (gimnasticariMap.ContainsKey(g))
                    {
                        GimnasticarUcesnik g2 = gimnasticariMap[g];
                        rt.Takmicenje1.addGimnasticar(g2);
                        rt.Takmicenje1.gimnasticarAdded(g2, new List<Ocena>(), rt);

                    }
                }
            }

            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaFrom, rt.TakmicenjeDescription.Naziv,
                    rt.Kategorija);
                foreach (Ekipa e in rtFrom.Takmicenje1.Ekipe)
                {
                    Ekipa ekipa = new Ekipa();
                    ekipa.Naziv = e.Naziv;
                    ekipa.Kod = e.Kod;
                    if (e.DrzavaUcesnik == null)
                        ekipa.DrzavaUcesnik = null;
                    else
                    {
                        DrzavaUcesnik drzavaUcesnik = findDrzavaUcesnik(takmicenje, e.DrzavaUcesnik.Naziv);
                        if (drzavaUcesnik == null)
                        {
                            drzavaUcesnik = new DrzavaUcesnik();
                            drzavaUcesnik.Naziv = e.DrzavaUcesnik.Naziv;
                            drzavaUcesnik.Kod = e.DrzavaUcesnik.Kod;
                            drzavaUcesnik.Takmicenje = takmicenje;
                            dataContext.Add(drzavaUcesnik);
                        }
                        ekipa.DrzavaUcesnik = drzavaUcesnik;
                    }
                    if (e.KlubUcesnik == null)
                        ekipa.KlubUcesnik = null;
                    else
                    {
                        KlubUcesnik klubUcesnik = findKlubUcesnik(takmicenje, e.KlubUcesnik.Naziv);
                        if (klubUcesnik == null)
                        {
                            klubUcesnik = new KlubUcesnik();
                            klubUcesnik.Naziv = e.KlubUcesnik.Naziv;
                            klubUcesnik.Kod = e.KlubUcesnik.Kod;
                            klubUcesnik.Takmicenje = takmicenje;
                            dataContext.Add(klubUcesnik);
                        }
                        ekipa.KlubUcesnik = klubUcesnik;
                    }

                    foreach (GimnasticarUcesnik g in e.Gimnasticari)
                    {
                        if (gimnasticariMap.ContainsKey(g))
                        {
                            GimnasticarUcesnik g2 = gimnasticariMap[g];
                            ekipa.addGimnasticar(g2);
                        }
                    }

                    rt.Takmicenje1.addEkipa(ekipa);
                }
            }

            dataContext.Add(takmicenje);
            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                dataContext.Add(rt);
                foreach (Ekipa e in rt.Takmicenje1.Ekipe)
                    dataContext.Add(e);
            }
            foreach (GimnasticarUcesnik g in gimnasticariMap.Values)
            {
                dataContext.Add(g);
            }

            if (dupliGimnasticari.Count > 0)
            {
                string msg = "Sledeci gimnasticari nisu dodati zato sto su prijavljeni u vise " +
                    "kategorija.  Ove gimnasticare morate da unesete rucno: \n\n";
                msg += StringUtil.getListString(dupliGimnasticari.ToArray());
                MessageDialogs.showMessage(msg, this.Text);
            }
        }
Пример #10
0
 public Zapisnik_popup(int X, int Y, Ekipa ek)
 {
     InitializeComponent();
     this.Location = new Point(X + 100, Y + 100);
     eki           = ek;
 }
Пример #11
0
 private RezultatEkipno getRezultat(Ekipa e)
 {
     foreach (RezultatEkipno r in Rezultati)
     {
         if (r.Ekipa.Equals(e))
             return r;
     }
     return null;
 }
Пример #12
0
        public virtual void gimnasticarDeletedFromEkipa(GimnasticarUcesnik g, Ekipa e,
            IList<Ocena> ocene, RezultatskoTakmicenje rezTak)
        {
            /*
            if (ocene.Count == 0)
                return;
            RezultatEkipno r = getRezultat(e);
            if (r != null)
            {
                foreach (Ocena o in ocene)
                    r.removeOcena(o);

                rankRezultati();
                updateKvalStatus(rezTak.Propozicije);
            }
             */
        }
Пример #13
0
 public virtual void deleteEkipa(Ekipa e, RezultatskoTakmicenje rezTak)
 {
     // Ovde je deo ostao otkometarisan zato sto mi je davao gresku kod brisanja ekipa.
     RezultatEkipno r = getRezultat(e);
     if (r != null)
     {
         Rezultati.Remove(r);
         //rankRezultati();
         //updateKvalStatus(rezTak.Propozicije);
     }
 }
        public ActionResult SpremiIzmjenuRezultataTakmicenjaEkipno(RezultatiTakmicenjaEkipnoUrediVM model)
        {
            Ekipa ekipa = ctx.Ekipa.Where(x => x.Id == model.EkipaId).FirstOrDefault();

            ekipa.Naziv = model.NazivEkipe;
            ctx.SaveChanges();
            List <ClanoviEkipe> clanoviEkipe        = ctx.ClanoviEkipe.Where(x => x.EkipaId == ekipa.Id && x.isDeleted == false).ToList();
            List <int>          listaClanoviEkipeId = new List <int>();

            for (int i = 0; i < clanoviEkipe.Count(); i++)
            {
                int takmicarId = clanoviEkipe[i].TakmicarId;
                listaClanoviEkipeId.Add(takmicarId);
            }
            for (int i = 0; i < model.clanoviEkipeId.Count(); i++)
            {
                int takmicarId = model.clanoviEkipeId[i];

                if (!listaClanoviEkipeId.Contains(takmicarId))
                {
                    ClanoviEkipe clan = new ClanoviEkipe();
                    clan.isDeleted  = false;
                    clan.TakmicarId = model.clanoviEkipeId[i];
                    clan.EkipaId    = ekipa.Id;
                    ctx.ClanoviEkipe.Add(clan);
                    ctx.SaveChanges();
                }
            }
            List <int> odabraniClanoviEkipeId = new List <int>();

            for (int i = 0; i < model.clanoviEkipeId.Count(); i++)
            {
                int takmicarId = model.clanoviEkipeId[i];
                odabraniClanoviEkipeId.Add(takmicarId);
            }
            for (int i = 0; i < listaClanoviEkipeId.Count(); i++)
            {
                int takmicarId = listaClanoviEkipeId[i];
                if (!odabraniClanoviEkipeId.Contains(takmicarId))
                {
                    ClanoviEkipe clan = ctx.ClanoviEkipe.Where(x => x.TakmicarId == takmicarId && x.isDeleted == false).FirstOrDefault();
                    if (clan != null)
                    {
                        clan.isDeleted = true;
                        ctx.SaveChanges();
                    }
                }
            }

            RezultatiTakmicenjaEkipno rezultat = ctx.RezultatiTakmicenjaEkipno.Where(x => x.Id == model.Id).FirstOrDefault();

            rezultat.OsvojenoMjestoNaTakmicenjuId = model.OsvojenoMjestoNaTakmicenjuId;
            rezultat.DisciplinaTakmicenjaId       = model.DisciplinaTakmicenjaId;
            rezultat.BrojPobjeda          = Convert.ToInt32(model.BrojPobjeda);
            rezultat.BrojPoraza           = Convert.ToInt32(model.BrojPoraza);
            rezultat.Obrazlozenje         = model.Obrazlozenje;
            rezultat.Kategorija           = model.Kategorija;
            rezultat.BrojEkipaUKategoriji = Convert.ToInt32(model.BrojEkipaUKategoriji);
            rezultat.StarosnaDobId        = model.StarosnaDobId;
            ctx.SaveChanges();

            return(RedirectToAction("Index", "UpravljanjeRezultatimaTakmicenja", new { takmicenjeId = model.TakmicenjeId, brojTaba = 2 }));
        }
Пример #15
0
 public virtual void gimnasticarDeletedFromEkipa(GimnasticarUcesnik g, Ekipa e,
     IList<Ocena> ocene, RezultatskoTakmicenje rezTak)
 {
     if (Ekipe.Contains(e))
         PoredakEkipno.gimnasticarDeletedFromEkipa(g, e, ocene, rezTak);
 }
Пример #16
0
        private bool kreirajZbirViseKola(Takmicenje takmicenje)
        {
            dataContext.Attach(takmicenje, false);
            List<List<TakmicarskaKategorija>> listaKategorija = new List<List<TakmicarskaKategorija>>();
            if (takmicenje.PrvoKolo != null)
            {
                dataContext.Attach(takmicenje.PrvoKolo, false);
                listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.PrvoKolo.Kategorije));
            }
            if (takmicenje.DrugoKolo != null)
            {
                dataContext.Attach(takmicenje.DrugoKolo, false);
                listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.DrugoKolo.Kategorije));
            }
            if (takmicenje.TreceKolo != null)
            {
                dataContext.Attach(takmicenje.TreceKolo, false);
                listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.TreceKolo.Kategorije));
            }
            if (takmicenje.CetvrtoKolo != null)
            {
                dataContext.Attach(takmicenje.CetvrtoKolo, false);
                listaKategorija.Add(new List<TakmicarskaKategorija>(takmicenje.CetvrtoKolo.Kategorije));
            }

            PropertyDescriptor propDesc =
                TypeDescriptor.GetProperties(typeof(TakmicarskaKategorija))["RedBroj"];
            for (int i = 0; i < listaKategorija.Count; ++i)
            {
                listaKategorija[i].Sort(new SortComparer<TakmicarskaKategorija>(
                    propDesc, ListSortDirection.Ascending));
            }

            for (int i = 0; i < listaKategorija[0].Count; ++i)
            {
                TakmicarskaKategorija kat1 = listaKategorija[0][i];
                for (int j = 0; j < listaKategorija.Count; ++j)
                {
                    TakmicarskaKategorija kat2 = listaKategorija[j][i];
                    if (!kat1.Equals(kat2))
                    {
                        // TODO3: Ovde bi ustvari trebalo proveravati da li se rezultatska takmicenja iz
                        // prethodna cetiri kola poklapaju, i ako se ne poklapaju da se otvori prozor
                        // gde ce korisnik moci da upari odgovarajuca rezultatska takmicenja (i da izabere
                        // koja rez. takmicenja zeli da ukljuci u novo takmicenje). Slicno i za finale kupa.
                        MessageBox.Show("Kategorije iz prethodnih kola se ne poklapaju", "Bilten");
                        return false;
                    }
                }
            }
            foreach (TakmicarskaKategorija k in listaKategorija[0])
            {
                takmicenje.addKategorija(new TakmicarskaKategorija(k.Naziv, takmicenje.Gimnastika));
            }

            // prvi description je uvek kao naziv takmicenja.
            RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription();
            desc.Naziv = takmicenje.Naziv;
            desc.Propozicije = new Propozicije();
            takmicenje.addTakmicenjeDescription(desc);

            IList<RezultatskoTakmicenje> rezTakmicenja = new List<RezultatskoTakmicenje>();
            foreach (RezultatskoTakmicenjeDescription d in takmicenje.TakmicenjeDescriptions)
            {
                foreach (TakmicarskaKategorija k in takmicenje.Kategorije)
                {
                    RezultatskoTakmicenje rt = new RezultatskoTakmicenje(takmicenje,
                        k, d, new Propozicije());
                    rt.Propozicije.PostojiTak2 = true;  // hack
                    rt.Propozicije.PostojiTak4 = true;  // hack
                    rt.ImaEkipnoTakmicenje = true;  // hack
                    rt.KombinovanoEkipnoTak = false;  // hack
                    rezTakmicenja.Add(rt);
                }
            }

            IDictionary<GimnasticarUcesnik, GimnasticarUcesnik> gimnasticariMap =
                new Dictionary<GimnasticarUcesnik, GimnasticarUcesnik>();
            List<Takmicenje> prethodnaKola = new List<Takmicenje>();
            if (takmicenje.PrvoKolo != null)
                prethodnaKola.Add(takmicenje.PrvoKolo);
            if (takmicenje.DrugoKolo != null)
                prethodnaKola.Add(takmicenje.DrugoKolo);
            if (takmicenje.TreceKolo != null)
                prethodnaKola.Add(takmicenje.TreceKolo);
            if (takmicenje.CetvrtoKolo != null)
                prethodnaKola.Add(takmicenje.CetvrtoKolo);
            foreach (TakmicarskaKategorija kat in takmicenje.Kategorije)
            {
                foreach (Takmicenje prethKolo in prethodnaKola)
                {
                    foreach (GimnasticarUcesnik g in loadGimnasticari(prethKolo, kat.Naziv))
                    {
                        if (!gimnasticariMap.ContainsKey(g))
                        {
                            GimnasticarUcesnik g2 = createGimnasticarUcesnik(g, kat);
                            gimnasticariMap.Add(g2, g2);
                        }
                    }
                }
            }

            List<List<RezultatskoTakmicenje>> rezTakmicenjaPrethodnaKola = new List<List<RezultatskoTakmicenje>>();
            foreach (Takmicenje prethKolo in prethodnaKola)
            {
                rezTakmicenjaPrethodnaKola.Add(new List<RezultatskoTakmicenje>(loadRezTakmicenja(prethKolo.Id)));
            }

            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                foreach (List<RezultatskoTakmicenje> rezTakmicenjaPrethKolo in rezTakmicenjaPrethodnaKola)
                {
                    RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaPrethKolo,
                        rt.TakmicenjeDescription.Naziv, rt.Kategorija);
                    foreach (GimnasticarUcesnik g in rtFrom.Takmicenje1.Gimnasticari)
                    {
                        GimnasticarUcesnik g2 = gimnasticariMap[g];
                        rt.Takmicenje1.addGimnasticar(g2);
                    }
                }
            }

            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                foreach (List<RezultatskoTakmicenje> rezTakmicenjaPrethKolo in rezTakmicenjaPrethodnaKola)
                {
                    RezultatskoTakmicenje rtFrom = findRezTakmicenje(rezTakmicenjaPrethKolo,
                        rt.TakmicenjeDescription.Naziv, rt.Kategorija);
                    foreach (Ekipa e in rtFrom.Takmicenje1.Ekipe)
                    {
                        if (rt.Takmicenje1.Ekipe.Contains(e))
                            continue;

                        Ekipa ekipa = new Ekipa();
                        ekipa.Naziv = e.Naziv;
                        ekipa.Kod = e.Kod;
                        if (e.DrzavaUcesnik == null)
                            ekipa.DrzavaUcesnik = null;
                        else
                        {
                            DrzavaUcesnik drzavaUcesnik = findDrzavaUcesnik(takmicenje, e.DrzavaUcesnik.Naziv);
                            if (drzavaUcesnik == null)
                            {
                                drzavaUcesnik = new DrzavaUcesnik();
                                drzavaUcesnik.Naziv = e.DrzavaUcesnik.Naziv;
                                drzavaUcesnik.Kod = e.DrzavaUcesnik.Kod;
                                drzavaUcesnik.Takmicenje = takmicenje;
                                dataContext.Add(drzavaUcesnik);
                            }
                            ekipa.DrzavaUcesnik = drzavaUcesnik;
                        }
                        if (e.KlubUcesnik == null)
                            ekipa.KlubUcesnik = null;
                        else
                        {
                            KlubUcesnik klubUcesnik = findKlubUcesnik(takmicenje, e.KlubUcesnik.Naziv);
                            if (klubUcesnik == null)
                            {
                                klubUcesnik = new KlubUcesnik();
                                klubUcesnik.Naziv = e.KlubUcesnik.Naziv;
                                klubUcesnik.Kod = e.KlubUcesnik.Kod;
                                klubUcesnik.Takmicenje = takmicenje;
                                dataContext.Add(klubUcesnik);
                            }
                            ekipa.KlubUcesnik = klubUcesnik;
                        }

                        rt.Takmicenje1.addEkipa(ekipa);
                    }
                }
            }

            dataContext.Add(takmicenje);
            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                dataContext.Add(rt);
                foreach (Ekipa e in rt.Takmicenje1.Ekipe)
                    dataContext.Add(e);
            }
            foreach (GimnasticarUcesnik g in gimnasticariMap.Values)
            {
                dataContext.Add(g);
            }

            return true;
        }
Пример #17
0
 public virtual void removeEkipa(Ekipa ekipa)
 {
     Ekipe.Remove(ekipa);
 }
Пример #18
0
        private bool canAddGimnasticar(Ekipa ekipa, GimnasticarUcesnik gimnasticar)
        {
            // TODO: Najpre proveri da li ekipa vec ima max broj clanova. Takodje,
            // razmisli da li clan ekipe mora da bude i ucesnik rez. takmicenja
            // u kome se ekipa takmici.

            return !ekipa.Gimnasticari.Contains(gimnasticar);
        }
Пример #19
0
        private List<RezultatUkupno> getRezultatiClanovaSorted(
            Ekipa e, IList<RezultatUkupno> rezultatiUkupno)
        {
            List<RezultatUkupno> result = new List<RezultatUkupno>();
            foreach (GimnasticarUcesnik g in e.Gimnasticari)
            {
                foreach (RezultatUkupno rez in rezultatiUkupno)
                {
                    if (g.Equals(rez.Gimnasticar))
                        result.Add(rez);
                }
            }

            PropertyDescriptor propDesc =
                TypeDescriptor.GetProperties(typeof(RezultatUkupno))["PrezimeIme"];
            result.Sort(new SortComparer<RezultatUkupno>(propDesc,
                ListSortDirection.Ascending));
            return result;
        }
Пример #20
0
        public static void addEkipaToRezTak(Ekipa ekipa, RezultatskoTakmicenje rezTak)
        {
            RezultatskoTakmicenjeDAO rezultatskoTakmicenjeDAO = DAOFactoryFactory.DAOFactory.GetRezultatskoTakmicenjeDAO();

            rezultatskoTakmicenjeDAO.Attach(rezTak, false);

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

            RezultatskoTakmicenje rezTak1 = null;
            RezultatskoTakmicenje rezTak2 = null;
            RezultatskoTakmicenje rezTak3 = null;
            RezultatskoTakmicenje rezTak4 = null;

            if (takmicenje.FinaleKupa || takmicenje.ZbirViseKola)
            {
                rezTak1 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe(
                    takmicenje.PrvoKolo.Id, rezTak.Kategorija.Naziv, 0);
                rezTak2 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe(
                    takmicenje.DrugoKolo.Id, rezTak.Kategorija.Naziv, 0);
                if (takmicenje.ZbirViseKola)
                {
                    if (takmicenje.TreceKolo != null)
                    {
                        rezTak3 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe(
                            takmicenje.TreceKolo.Id, rezTak.Kategorija.Naziv, 0);
                    }
                    if (takmicenje.CetvrtoKolo != null)
                    {
                        rezTak4 = rezultatskoTakmicenjeDAO.FindByTakmicenjeFetch_Tak1_PoredakEkipno_Ekipe(
                            takmicenje.CetvrtoKolo.Id, rezTak.Kategorija.Naziv, 0);
                    }
                }
            }

            foreach (Ekipa e in rezTak.Takmicenje1.Ekipe)
            {
                foreach (GimnasticarUcesnik g in ekipa.Gimnasticari)
                {
                    if (e.Gimnasticari.Contains(g))
                    {
                        throw new BusinessException(String.Format(Strings.GIMNASTICAR_JE_CLAN_DRUGE_EKIPE_ERROR_MSG,
                                                                  g.ImeSrednjeImePrezime, e.Naziv));
                    }
                }
            }

            if (rezTak.Takmicenje1.addEkipa(ekipa, true))
            {
                DAOFactoryFactory.DAOFactory.GetEkipaDAO().Add(ekipa);

                if (takmicenje.FinaleKupa)
                {
                    rezTak.Takmicenje1.updateRezultatiOnEkipaAdded(ekipa,
                                                                   findRezultatiUkupnoForEkipa(takmicenje.Id, ekipa), rezTak, rezTak1, rezTak2);
                }
                else if (takmicenje.ZbirViseKola)
                {
                    rezTak.Takmicenje1.updateRezultatiOnEkipaAdded(ekipa, rezTak, rezTak1, rezTak2, rezTak3, rezTak4);
                }
                else
                {
                    rezTak.Takmicenje1.updateRezultatiOnEkipaAdded(ekipa, rezTak,
                                                                   findRezultatiUkupnoForEkipa(takmicenje.Id, ekipa));
                }

                // snimi ekipe i poredak ekipno
                DAOFactoryFactory.DAOFactory.GetTakmicenje1DAO().Update(rezTak.Takmicenje1);
            }

            takmicenjeDAO.Evict(takmicenje);
            if (rezTak1 != null)
            {
                rezultatskoTakmicenjeDAO.Evict(rezTak1);
            }
            if (rezTak2 != null)
            {
                rezultatskoTakmicenjeDAO.Evict(rezTak2);
            }
            if (rezTak3 != null)
            {
                rezultatskoTakmicenjeDAO.Evict(rezTak3);
            }
            if (rezTak4 != null)
            {
                rezultatskoTakmicenjeDAO.Evict(rezTak4);
            }
        }