Пример #1
0
 private bool ranksAreEqual(RezultatSprava r1, RezultatSprava r2, bool vecaEOcenaImaPrednost)
 {
     if (r1 == null || r2 == null)
     {
         return(false);
     }
     return(r1.Total == r2.Total && (!vecaEOcenaImaPrednost || r1.E == r2.E));
 }
Пример #2
0
        public virtual void addGimnasticar(GimnasticarUcesnik g, Ocena o,
                                           RezultatskoTakmicenje rezTak)
        {
            RezultatSprava r = new RezultatSprava();

            r.Gimnasticar = g;
            r.setOcena(o);
            Rezultati.Add(r);
            rankRezultati(rezTak.Propozicije);
        }
Пример #3
0
        public virtual void editOcena(Ocena o, RezultatskoTakmicenje rezTak)
        {
            RezultatSprava r = getRezultat(o.Gimnasticar);

            if (r != null)
            {
                r.setOcena(o);
                rankRezultati(rezTak.Propozicije);
            }
        }
Пример #4
0
        public virtual void deleteGimnasticar(GimnasticarUcesnik g,
                                              RezultatskoTakmicenje rezTak)
        {
            RezultatSprava r = getRezultat(g);

            if (r != null)
            {
                Rezultati.Remove(r);
                rankRezultati(rezTak.Propozicije);
            }
        }
Пример #5
0
        public virtual void loadFromDump(StringReader reader, IdMap map)
        {
            DeoTakmicenjaKod = (DeoTakmicenjaKod)Enum.Parse(typeof(DeoTakmicenjaKod), reader.ReadLine());
            Sprava           = (Sprava)Enum.Parse(typeof(Sprava), reader.ReadLine());

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

            for (int i = 0; i < brojRezultata; ++i)
            {
                reader.ReadLine();  // id
                RezultatSprava r = new RezultatSprava();
                r.loadFromDump(reader, map);
                Rezultati.Add(r);
            }
        }
Пример #6
0
        public virtual void deleteOcena(Ocena o, RezultatskoTakmicenje rezTak, bool removeRezultat)
        {
            RezultatSprava r = getRezultat(o.Gimnasticar);

            if (r != null)
            {
                if (removeRezultat)
                {
                    Rezultati.Remove(r);
                }
                else
                {
                    r.clearOcena();
                }
                rankRezultati(rezTak.Propozicije);
            }
        }
Пример #7
0
        public virtual void addOcena(Ocena o, RezultatskoTakmicenje rezTak,
                                     bool createRezultat)
        {
            RezultatSprava rezultat;

            if (createRezultat)
            {
                rezultat             = new RezultatSprava();
                rezultat.Gimnasticar = o.Gimnasticar;
                Rezultati.Add(rezultat);
            }
            else
            {
                rezultat = getRezultat(o.Gimnasticar);
            }
            if (rezultat != null)
            {
                rezultat.setOcena(o);
                rankRezultati(rezTak.Propozicije);
            }
        }
Пример #8
0
        public virtual void create(RezultatskoTakmicenje rezTak, IList <Ocena> ocene)
        {
            IList <GimnasticarUcesnik> gimnasticari;

            if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
            {
                gimnasticari = getGimnasticari(ocene, Sprava, rezTak);
            }
            else
            {
                gimnasticari = rezTak.Takmicenje3.getGimnasticariKvalifikanti(Sprava);
            }

            IDictionary <int, RezultatSprava> rezultatiMap = new Dictionary <int, RezultatSprava>();

            foreach (GimnasticarUcesnik g in gimnasticari)
            {
                RezultatSprava r = new RezultatSprava();
                r.Gimnasticar = g;
                rezultatiMap.Add(g.Id, r);
            }

            foreach (Ocena o in ocene)
            {
                if (o.Sprava == Sprava && rezultatiMap.ContainsKey(o.Gimnasticar.Id))
                {
                    rezultatiMap[o.Gimnasticar.Id].setOcena(o);
                }
            }

            Rezultati.Clear();
            foreach (RezultatSprava r in rezultatiMap.Values)
            {
                Rezultati.Add(r);
            }
            rankRezultati(rezTak.Propozicije);
        }
Пример #9
0
 public virtual void initDrugoKolo(RezultatSprava r)
 {
     D_DrugoKolo    = r.D;
     E_DrugoKolo    = r.E;
     TotalDrugoKolo = r.Total;
 }
Пример #10
0
 public virtual void initPrvoKolo(RezultatSprava r)
 {
     D_PrvoKolo    = r.D;
     E_PrvoKolo    = r.E;
     TotalPrvoKolo = r.Total;
 }
Пример #11
0
        public virtual void rankRezultati(Propozicije propozicije)
        {
            // TODO3: I u klasi PoredakSpravaFinaleKupa treba razresiti situaciju kada dva gimnasticara imaju iste ocene.
            // Pretpostavljam da i tamo treba gledati E ocene, tj. ko ima vecu taj je u prednosti.

            List <RezultatSprava> rezultati = new List <RezultatSprava>(Rezultati);

            PropertyDescriptor[] propDesc;
            ListSortDirection[]  sortDir;
            if (propozicije.VecaEOcenaImaPrednost)
            {
                propDesc = new PropertyDescriptor[] {
                    TypeDescriptor.GetProperties(typeof(RezultatSprava))["Total"],
                    TypeDescriptor.GetProperties(typeof(RezultatSprava))["E"],
                    TypeDescriptor.GetProperties(typeof(RezultatSprava))["PrezimeIme"]
                };
                sortDir = new ListSortDirection[] {
                    ListSortDirection.Descending,
                    ListSortDirection.Descending,
                    ListSortDirection.Ascending
                };
            }
            else
            {
                propDesc = new PropertyDescriptor[] {
                    TypeDescriptor.GetProperties(typeof(RezultatSprava))["Total"],
                    TypeDescriptor.GetProperties(typeof(RezultatSprava))["PrezimeIme"]
                };
                sortDir = new ListSortDirection[] {
                    ListSortDirection.Descending,
                    ListSortDirection.Ascending
                };
            }
            rezultati.Sort(new SortComparer <RezultatSprava>(propDesc, sortDir));

            RezultatSprava prevRezultat = null;
            short          prevRank     = 0;

            for (int i = 0; i < rezultati.Count; i++)
            {
                rezultati[i].RedBroj = (short)(i + 1);

                if (rezultati[i].Total == null)
                {
                    rezultati[i].Rank = null;
                }
                else
                {
                    if (!ranksAreEqual(rezultati[i], prevRezultat, propozicije.VecaEOcenaImaPrednost))
                    {
                        rezultati[i].Rank = rezultati[i].RedBroj;
                    }
                    else
                    {
                        rezultati[i].Rank = prevRank;
                    }

                    prevRezultat = rezultati[i];
                    prevRank     = rezultati[i].Rank.Value;
                }
            }
            updateKvalStatus <RezultatSprava>(propozicije, Rezultati, deoTakKod, x => x.Total == null);
        }