void btnRezultati_Click(object sender, EventArgs e) { if (SelectedItem == null) { return; } // TODO4: Dodaj mogucnost izbora, ako ima vise gimnasticara ucesnika sa datim imenom i prezimenom. KonacanPlasmanDAO kpDAO = new KonacanPlasmanDAO(); kpDAO.ConnectionString = ConfigurationParameters.ConnectionString; Cursor.Current = Cursors.WaitCursor; Cursor.Show(); List <KonacanPlasman> plasmani; try { List <KonacanPlasman> viseboj = new List <KonacanPlasman>(); viseboj.AddRange(kpDAO.findVisebojFinaleKupa(SelectedItem.Ime, SelectedItem.Prezime)); viseboj.AddRange(kpDAO.findVisebojZbirViseKola(SelectedItem.Ime, SelectedItem.Prezime)); viseboj.AddRange(kpDAO.findVisebojTak1(SelectedItem.Ime, SelectedItem.Prezime)); viseboj.AddRange(kpDAO.findVisebojTak2(SelectedItem.Ime, SelectedItem.Prezime)); List <KonacanPlasman> sprave = new List <KonacanPlasman>(); // Dodajem najpre finale kupa da bi, ako je postojalo odvojeno takmicenje 3 finale kupa, rezultati prebrisali // ove rezultate (za one gimnasticare koji su ucestvovali u odvojenom finalu kupa). Iz istog razloga najpre // dodajem spraveTak1 pa spraveTak3. sprave.AddRange(kpDAO.findSpraveFinaleKupa(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findSpraveTak1(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findSpraveTak3(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findPreskokTak1(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findPreskokTak3(SelectedItem.Ime, SelectedItem.Prezime)); Dictionary <int, KonacanPlasman> plasmaniMap = new Dictionary <int, KonacanPlasman>(); foreach (KonacanPlasman kp in viseboj) { if (plasmaniMap.ContainsKey(kp.RezultatskoTakmicenjeId)) { if (kp.Viseboj != null) { plasmaniMap[kp.RezultatskoTakmicenjeId].Viseboj = kp.Viseboj; } } else { plasmaniMap.Add(kp.RezultatskoTakmicenjeId, kp); } } foreach (KonacanPlasman kp in sprave) { if (plasmaniMap.ContainsKey(kp.RezultatskoTakmicenjeId)) { updatePlasmanSprava(plasmaniMap[kp.RezultatskoTakmicenjeId], kp); } else { plasmaniMap.Add(kp.RezultatskoTakmicenjeId, kp); } } plasmani = new List <KonacanPlasman>(plasmaniMap.Values); } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; } if (plasmani.Count == 0) { MessageDialogs.showMessage("Ne postoje rezultati za gimnasticara '" + SelectedItem.ImeSrednjeImePrezimeDatumRodjenja + "'.", "Rezultati"); } else { KonacanPlasmanForm form = new KonacanPlasmanForm(plasmani, SelectedItem.Gimnastika); form.ShowDialog(); } }
void btnRezultati_Click(object sender, EventArgs e) { if (SelectedItem == null) { return; } if (Opcije.Instance.BiltenConnectionString == null) { MessageDialogs.showMessage("Pronadjite folder za bilten i selektujte fajl 'BiltenPodaci.sdf'.", "Registracija"); OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() != DialogResult.OK) { return; } Opcije.Instance.BiltenConnectionString = String.Format(@"Data Source={0}", ofd.FileName); } KonacanPlasmanDAO kpDAO = new KonacanPlasmanDAO(); kpDAO.ConnectionString = Opcije.Instance.BiltenConnectionString; Cursor.Current = Cursors.WaitCursor; Cursor.Show(); List <KonacanPlasman> plasmani; try { List <KonacanPlasman> viseboj = new List <KonacanPlasman>(); viseboj.AddRange(kpDAO.findVisebojFinaleKupa(SelectedItem.Ime, SelectedItem.Prezime)); viseboj.AddRange(kpDAO.findVisebojZbirViseKola(SelectedItem.Ime, SelectedItem.Prezime)); viseboj.AddRange(kpDAO.findVisebojTak1(SelectedItem.Ime, SelectedItem.Prezime)); viseboj.AddRange(kpDAO.findVisebojTak2(SelectedItem.Ime, SelectedItem.Prezime)); List <KonacanPlasman> sprave = new List <KonacanPlasman>(); // Dodajem najpre finale kupa da bi, ako je postojalo odvojeno takmicenje 3 finale kupa, rezultati prebrisali // ove rezultate (za one gimnasticare koji su ucestvovali u odvojenom finalu kupa). Iz istog razloga najpre // dodajem spraveTak1 pa spraveTak3. sprave.AddRange(kpDAO.findSpraveFinaleKupa(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findSpraveTak1(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findSpraveTak3(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findPreskokTak1(SelectedItem.Ime, SelectedItem.Prezime)); sprave.AddRange(kpDAO.findPreskokTak3(SelectedItem.Ime, SelectedItem.Prezime)); Dictionary <int, KonacanPlasman> plasmaniMap = new Dictionary <int, KonacanPlasman>(); foreach (KonacanPlasman kp in viseboj) { if (plasmaniMap.ContainsKey(kp.RezultatskoTakmicenjeId)) { if (kp.Viseboj != null) { plasmaniMap[kp.RezultatskoTakmicenjeId].Viseboj = kp.Viseboj; } } else { plasmaniMap.Add(kp.RezultatskoTakmicenjeId, kp); } } foreach (KonacanPlasman kp in sprave) { if (plasmaniMap.ContainsKey(kp.RezultatskoTakmicenjeId)) { updatePlasmanSprava(plasmaniMap[kp.RezultatskoTakmicenjeId], kp); } else { plasmaniMap.Add(kp.RezultatskoTakmicenjeId, kp); } } plasmani = new List <KonacanPlasman>(plasmaniMap.Values); } finally { Cursor.Hide(); Cursor.Current = Cursors.Arrow; } if (plasmani.Count == 0) { MessageDialogs.showMessage("Ne postoje rezultati za gimnasticara '" + SelectedItem.ImeSrednjeImePrezimeDatumRodjenja + "'.", "Rezultati"); } else { KonacanPlasmanForm form = new KonacanPlasmanForm(plasmani, SelectedItem.Gimnastika); form.ShowDialog(); } }