Exemple #1
0
        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();
            }
        }
Exemple #2
0
        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();
            }
        }