Пример #1
0
        private void dodajPenalizacijuToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IList <RezultatEkipno> rezultatiEkipe = dataGridViewUserControl1.getSelectedItems <RezultatEkipno>();

            if (rezultatiEkipe.Count != 1)
            {
                return;
            }
            RezultatEkipno r = rezultatiEkipe[0];

            PenalizacijaForm form = new PenalizacijaForm(r.Penalty, takmicenje);

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Nullable <float> penalty = null;

            if (form.Penalizacija.Trim() != String.Empty)
            {
                penalty = float.Parse(form.Penalizacija);
            }
            PoredakEkipno p = ActiveTakmicenje.getPoredakEkipno(deoTakKod);

            p.promeniPenalizaciju(r, penalty, ActiveTakmicenje);

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        DAOFactoryFactory.DAOFactory.GetEkipaDAO().Update(r.Ekipa);
                        DAOFactoryFactory.DAOFactory.GetPoredakEkipnoDAO().Update(p);

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                return;
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            dataGridViewUserControl1.setItems <RezultatEkipno>(p.getRezultati());
            dataGridViewUserControl1.setSelectedItem <RezultatEkipno>(r);
        }
Пример #2
0
        private List <object[]> getEkipeReportItems(List <RezultatEkipno> rezultatiEkipe,
                                                    IDictionary <int, List <RezultatUkupno> > ekipaRezultatiUkupnoMap, Gimnastika gim)
        {
            IList <RezultatUkupno> rezUkupnoSorted = getRezultatiUkupnoSorted(rezultatiEkipe, ekipaRezultatiUkupnoMap);

            List <object[]> result = new List <object[]>();

            for (int i = 0; i < rezUkupnoSorted.Count; ++i)
            {
                RezultatUkupno rez      = rezUkupnoSorted[i];
                RezultatEkipno rezEkipa = getRezEkipa(i, rezultatiEkipe);

                // TODO: Proveri da li postoje situacije kada za clana ekipe umesto naziva ekipe treba da stoji naziv
                // kluba ili drzave (koji se nalazi u RezultatUkupno.KlubDrzava).

                string ekipaNaziv = rezEkipa != null ? rezEkipa.Ekipa.Naziv : rez.KlubDrzava;

                if (gim == Gimnastika.MSG)
                {
                    result.Add(new object[] { rez.PrezimeIme, /*rez.KlubDrzava*/ ekipaNaziv,
                                              rez.Parter, rez.Konj, rez.Karike, rez.Preskok, rez.Razboj,
                                              rez.Vratilo, rez.Total });
                }
                else
                {
                    result.Add(new object[] { rez.PrezimeIme, /*rez.KlubDrzava*/ ekipaNaziv,
                                              rez.Preskok, rez.DvovisinskiRazboj, rez.Greda, rez.Parter,
                                              rez.Total });
                }
            }
            return(result);
        }
Пример #3
0
        private RezultatEkipno getRezEkipa(int redBrojRezUkupno, List <RezultatEkipno> rezultati)
        {
            int current = 0;

            for (int i = 0; i < rezultati.Count; ++i)
            {
                RezultatEkipno e = rezultati[i];
                current += e.Ekipa.Gimnasticari.Count;
                if (redBrojRezUkupno < current)
                {
                    return(e);
                }
            }
            return(null);
        }
Пример #4
0
        private void onEkipeCellMouseClick()
        {
            RezultatEkipno rez = dataGridViewUserControl1.getSelectedItem <RezultatEkipno>();

            if (rez != null)
            {
                setRezultatiUkupno(rez.Ekipa);
            }
            else if (dataGridViewUserControl1.getItemCount <RezultatEkipno>() > 0)
            {
                setRezultatiUkupno(dataGridViewUserControl1.getItems <RezultatEkipno>()[0].Ekipa);
            }
            else
            {
                dataGridViewUserControl2.clearItems();
            }
        }
Пример #5
0
        private void fetchItems(List <RezultatEkipno> rezultatiEkipno,
                                IDictionary <int, List <RezultatUkupno> > ekipaRezultatiUkupnoMap, Gimnastika gim)
        {
            PropertyDescriptor propDesc =
                TypeDescriptor.GetProperties(typeof(RezultatEkipno))["RedBroj"];

            rezultatiEkipno.Sort(new SortComparer <RezultatEkipno>(propDesc,
                                                                   ListSortDirection.Ascending));

            items = getEkipeReportItems(rezultatiEkipno, ekipaRezultatiUkupnoMap, gim);

            groups = new List <ReportGrupa>();
            int start = 0;

            for (int i = 0; i < rezultatiEkipno.Count; i++)
            {
                RezultatEkipno rez   = rezultatiEkipno[i];
                int            count = rez.Ekipa.Gimnasticari.Count;

                object[] data;
                if (gim == Gimnastika.MSG)
                {
                    data = new object[] { rez.Rank, rez.Ekipa.Naziv, rez.Parter,
                                          rez.Konj, rez.Karike, rez.Preskok, rez.Razboj, rez.Vratilo,
                                          rez.Total, KvalifikacioniStatusi.toString(rez.KvalStatus), rez.Penalty };
                }
                else
                {
                    data = new object[] { rez.Rank, rez.Ekipa.Naziv, rez.Preskok,
                                          rez.DvovisinskiRazboj, rez.Greda, rez.Parter, rez.Total,
                                          KvalifikacioniStatusi.toString(rez.KvalStatus), rez.Penalty };
                }
                groups.Add(new ReportGrupa(data, start, count));
                start += count;
            }
        }
Пример #6
0
        private void mnSpraveKojeSeBoduju_Click(object sender, EventArgs e)
        {
            IList <RezultatEkipno> rezultatiEkipe = dataGridViewUserControl1.getSelectedItems <RezultatEkipno>();

            if (rezultatiEkipe.Count != 1)
            {
                return;
            }
            RezultatEkipno rezultat = rezultatiEkipe[0];

            List <int> checkedItems = new List <int>();

            foreach (Sprava s in Sprave.getSprave(gimnastika))
            {
                if (rezultat.Ekipa.getSpravaSeBoduje(s))
                {
                    checkedItems.Add(Sprave.indexOf(s, gimnastika));
                }
            }

            CheckListForm form = new CheckListForm(
                new List <string>(Sprave.getSpraveNazivi(gimnastika)), checkedItems,
                "Izaberite sprave koje se boduju", "Sprave koje se boduju", true, "Izaberite sprave", true);

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Sprava[]       sprave             = Sprave.getSprave(gimnastika);
            IList <Sprava> spraveKojeSeBoduju = new List <Sprava>();

            rezultat.Ekipa.clearSpraveKojeSeBoduju();
            foreach (int i in form.CheckedIndices)
            {
                rezultat.Ekipa.setSpravaSeBoduje(sprave[i]);
            }

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        DAOFactoryFactory.DAOFactory.GetEkipaDAO().Update(rezultat.Ekipa);

                        PoredakEkipnoDAO poredakEkipnoDAO = DAOFactoryFactory.DAOFactory.GetPoredakEkipnoDAO();

                        PoredakEkipno p = ActiveTakmicenje.getPoredakEkipno(deoTakKod);
                        poredakEkipnoDAO.Attach(p, false);

                        p.recreateRezultat(rezultat.Ekipa, ActiveTakmicenje,
                                           RezultatskoTakmicenjeService.findRezultatiUkupnoForEkipa(takmicenje.Id, rezultat.Ekipa));
                        poredakEkipnoDAO.Update(p);

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                Close();
                return;
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            dataGridViewUserControl1.setItems <RezultatEkipno>(
                ActiveTakmicenje.getPoredakEkipno(deoTakKod).getRezultati());
            // posto je poredak ponovo kreiran, i rezultat za ekipu je nov objekat pa moram da ga iznova potrazim
            dataGridViewUserControl1.setSelectedItem <RezultatEkipno>(
                ActiveTakmicenje.getPoredakEkipno(deoTakKod).getRezultat(rezultat.Ekipa));
        }