private RezultatEkipno createRezultatEkipno(Ekipa e, List <RezultatUkupno> rezultatiUkupno, int brojRezultata, Gimnastika gimnastika) { RezultatEkipno result = new RezultatEkipno(); result.Ekipa = e; foreach (Sprava s in Sprave.getSprave(gimnastika)) { if (!e.getSpravaSeBoduje(s)) { continue; } PropertyDescriptor[] propDesc = new PropertyDescriptor[] { TypeDescriptor.GetProperties(typeof(RezultatEkipno))[s.ToString()] }; ListSortDirection[] sortDir = new ListSortDirection[] { ListSortDirection.Descending }; rezultatiUkupno.Sort(new SortComparer <RezultatUkupno>(propDesc, sortDir)); for (int i = 0; i < rezultatiUkupno.Count; i++) { if (i < brojRezultata) { Nullable <float> ocena = rezultatiUkupno[i].getSprava(s); if (ocena != null) { result.addOcena(s, ocena.Value); } } } } if (e.Penalty != null) { result.addPenalty(e.Penalty.Value); } return(result); }
public virtual void create(RezultatskoTakmicenje rezTak, IList<Ocena> ocene) { IList<Ekipa> ekipe; if (deoTakKod == DeoTakmicenjaKod.Takmicenje1) ekipe = new List<Ekipa>(rezTak.Takmicenje1.Ekipe); else ekipe = new List<Ekipa>(rezTak.Takmicenje4.getUcesnici()); IDictionary<int, List<RezultatUkupno>> ekipaRezUkupnoMap = createEkipaRezultatiUkupnoMap(ekipe, ocene); Rezultati.Clear(); foreach (Ekipa e in ekipe) { RezultatEkipno rezultatEkipno = new RezultatEkipno(); rezultatEkipno.Ekipa = e; List<RezultatUkupno> rezultatiUkupno = ekipaRezUkupnoMap[e.Id]; Sprava[] sprave = Sprave.getSprave(rezTak.Gimnastika); foreach (Sprava s in sprave) { PropertyDescriptor[] propDesc = new PropertyDescriptor[] { TypeDescriptor.GetProperties(typeof(RezultatEkipno))[s.ToString()] }; ListSortDirection[] sortDir = new ListSortDirection[] { ListSortDirection.Descending }; rezultatiUkupno.Sort(new SortComparer<RezultatUkupno>(propDesc, sortDir)); for (int i = 0; i < rezultatiUkupno.Count; i++) { if (i < rezTak.Propozicije.BrojRezultataKojiSeBodujuZaEkipu) { Nullable<float> ocena = rezultatiUkupno[i].getOcena(s); if (ocena != null) rezultatEkipno.addOcena(s, ocena); } } } if (e.Penalty != null) rezultatEkipno.addPenalty(e.Penalty); Rezultati.Add(rezultatEkipno); } rankRezultati(); updateKvalStatus(rezTak.Propozicije); }