Example #1
0
 public virtual void addTakmicenjeDescription(RezultatskoTakmicenjeDescription desc)
 {
     if (TakmicenjeDescriptions.Add(desc))
     {
         desc.RedBroj = (byte)(TakmicenjeDescriptions.Count - 1);
     }
 }
 protected override DomainObject createNewEntity()
 {
     RezultatskoTakmicenjeDescription result =
         new RezultatskoTakmicenjeDescription();
     result.Propozicije = new Propozicije();
     return result;
 }
 public RezultatskoTakmicenjeDescriptionForm(
     RezultatskoTakmicenjeDescription desc, Takmicenje takmicenje)
 {
     InitializeComponent();
     this.takmicenje = takmicenje;
     initialize2(desc, false);
 }
Example #4
0
 public virtual void removeTakmicenjeDescription(RezultatskoTakmicenjeDescription desc)
 {
     if (TakmicenjeDescriptions.Remove(desc))
     {
         foreach (RezultatskoTakmicenjeDescription d in TakmicenjeDescriptions)
         {
             if (d.RedBroj > desc.RedBroj)
             {
                 d.RedBroj--;
             }
         }
     }
 }
Example #5
0
        public RezultatskoTakmicenje(Takmicenje takmicenje, TakmicarskaKategorija
                                     kategorija, RezultatskoTakmicenjeDescription desc, Propozicije propozicije)
        {
            this.takmicenje  = takmicenje;
            this.kategorija  = kategorija;
            this.description = desc;
            this.propozicije = propozicije;
            this.gimnastika  = takmicenje.Gimnastika;

            Takmicenje1 = new Takmicenje1(takmicenje);
            Takmicenje2 = new Takmicenje2();
            Takmicenje3 = new Takmicenje3(Gimnastika);
            Takmicenje4 = new Takmicenje4();
        }
Example #6
0
        public override bool Equals(object other)
        {
            if (object.ReferenceEquals(this, other))
            {
                return(true);
            }
            if (!(other is RezultatskoTakmicenjeDescription))
            {
                return(false);
            }
            RezultatskoTakmicenjeDescription that = (RezultatskoTakmicenjeDescription)other;

            return(this.Naziv.ToUpper() == that.Naziv.ToUpper());
        }
Example #7
0
        public RezultatskoTakmicenje(Takmicenje takmicenje, TakmicarskaKategorija
            kategorija, RezultatskoTakmicenjeDescription desc, Propozicije propozicije)
        {
            this.takmicenje = takmicenje;
            this.kategorija = kategorija;
            this.description = desc;
            this.propozicije = propozicije;
            this.gimnastika = takmicenje.Gimnastika;

            _takmicenje1 = new Takmicenje1(takmicenje.Gimnastika);
            if (propozicije.PostojiTak2)
                _takmicenje2 = new Takmicenje2();
            if (propozicije.PostojiTak3)
                _takmicenje3 = new Takmicenje3(takmicenje.Gimnastika);
            if (propozicije.PostojiTak4)
                _takmicenje4 = new Takmicenje4();
        }
Example #8
0
        public static void updateImaEkipnoTakmicenje(IList <RezultatskoTakmicenje> rezTakmicenja,
                                                     RezultatskoTakmicenjeDescription desc)
        {
            List <RezultatskoTakmicenje> rezTakDesc = new List <RezultatskoTakmicenje>();

            foreach (RezultatskoTakmicenje rt in rezTakmicenja)
            {
                if (rt.TakmicenjeDescription.Equals(desc))
                {
                    rezTakDesc.Add(rt);
                }
            }
            bool kombAdded = false;

            foreach (RezultatskoTakmicenje rt in rezTakDesc)
            {
                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;
                    }
                }
            }
        }
Example #9
0
        public virtual void loadFromDump(StringReader reader, IdMap map, out int prvoKoloId, out int drugoKoloId,
                                         out int treceKoloId, out int cetvrtoKoloId, out int vrhovniSudijaId)
        {
            string naziv = reader.ReadLine();

            Naziv      = naziv != NULL ? naziv : null;
            Gimnastika = (Gimnastika)Enum.Parse(typeof(Gimnastika), reader.ReadLine());
            Datum      = DateTime.Parse(reader.ReadLine());
            string mesto = reader.ReadLine();

            Mesto = mesto != NULL ? mesto : null;

            TipTakmicenja = (TipTakmicenja)Enum.Parse(typeof(TipTakmicenja), reader.ReadLine());

            string prvoKoloIdStr    = reader.ReadLine();
            string drugoKoloIdStr   = reader.ReadLine();
            string treceKoloIdStr   = reader.ReadLine();
            string cetvrtoKoloIdStr = reader.ReadLine();

            prvoKoloId = prvoKoloIdStr != NULL?int.Parse(prvoKoloIdStr) : -1;

            drugoKoloId = drugoKoloIdStr != NULL?int.Parse(drugoKoloIdStr) : -1;

            treceKoloId = treceKoloIdStr != NULL?int.Parse(treceKoloIdStr) : -1;

            cetvrtoKoloId = cetvrtoKoloIdStr != NULL?int.Parse(cetvrtoKoloIdStr) : -1;

            string vrhovniSudijaIdStr = reader.ReadLine();

            vrhovniSudijaId = vrhovniSudijaIdStr != NULL?int.Parse(vrhovniSudijaIdStr) : -1;

            BrojEOcena        = byte.Parse(reader.ReadLine());
            BrojDecimalaD     = byte.Parse(reader.ReadLine());
            BrojDecimalaE1    = byte.Parse(reader.ReadLine());
            BrojDecimalaE     = byte.Parse(reader.ReadLine());
            BrojDecimalaPen   = byte.Parse(reader.ReadLine());
            BrojDecimalaTotal = byte.Parse(reader.ReadLine());
            ZavrsenoTak1      = bool.Parse(reader.ReadLine());

            string zreb = reader.ReadLine();

            ZrebZaFinalePoSpravama = zreb != NULL ? zreb : null;

            LastModified = DateTime.Parse(reader.ReadLine());

            int brojTakmicenja = int.Parse(reader.ReadLine());

            for (int i = 0; i < brojTakmicenja; ++i)
            {
                string id = reader.ReadLine();
                RezultatskoTakmicenjeDescription d = new RezultatskoTakmicenjeDescription();
                map.descriptionsMap.Add(int.Parse(id), d);
                d.loadFromDump(reader);
                TakmicenjeDescriptions.Add(d);
            }

            int brojKategorija = int.Parse(reader.ReadLine());

            for (int i = 0; i < brojKategorija; ++i)
            {
                string id = reader.ReadLine();
                TakmicarskaKategorija k = new TakmicarskaKategorija();
                map.kategorijeMap.Add(int.Parse(id), k);
                k.loadFromDump(reader, map);
                Kategorije.Add(k);
            }
        }
 private bool existsTakmicenjeNaziv(RezultatskoTakmicenjeDescription d)
 {
     foreach (RezultatskoTakmicenjeDescription d2 in takmicenje.TakmicenjeDescriptions)
     {
         if (!object.ReferenceEquals(d2, d) && d2.Naziv.ToUpper() == d.Naziv.ToUpper())
             return true;
     }
     return false;
 }
Example #11
0
        private void insertTakmicenje()
        {
            Takmicenje takmicenje = new Takmicenje();
            takmicenje.Naziv = "3rd European Artistic Gymnastics Individual Championships";
            takmicenje.Datum = DateTime.Parse("02.04.2009");
            takmicenje.Mesto = "Milano";
            takmicenje.Gimnastika = gimnastika;

            takmicenje.BrojDecimalaD = 3;
            takmicenje.BrojDecimalaE1 = 2;
            takmicenje.BrojDecimalaE = 3;
            takmicenje.BrojDecimalaPen = 1;
            takmicenje.BrojDecimalaTotal = 3;

            takmicenje.ZavrsenoTak1 = true;

            string naziv = (gimnastika == Gimnastika.MSG) ? "Seniori" : "Seniorke";
            TakmicarskaKategorija takKategorija =
                new TakmicarskaKategorija(naziv, gimnastika);

            RezultatskoTakmicenjeDescription desc = new RezultatskoTakmicenjeDescription();
            desc.Naziv = "European Championships";
            desc.Propozicije = createPropozicije();

            takmicenje.addKategorija(takKategorija);
            takmicenje.addTakmicenjeDescription(desc);
            dataContext.Add(takmicenje);

            RezultatskoTakmicenje rezTak = new RezultatskoTakmicenje(takmicenje,
                takKategorija, desc, createPropozicije());
            dataContext.Add(rezTak);
        }
Example #12
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;
        }
Example #13
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);
            }
        }
Example #14
0
 private IList<Propozicije> getDependentPropozicije(RezultatskoTakmicenjeDescription d)
 {
     IList<Propozicije> result = new List<Propozicije>();
     foreach (RezultatskoTakmicenje rt in rezTakmicenja)
     {
         if (rt.TakmicenjeDescription.Equals(d))
             result.Add(rt.Propozicije);
     }
     return result;
 }