Example #1
0
        private void initTab(TabPage tabPage, RasporedSudija raspored)
        {
            SpravaGridGroupUserControl spravaGridGroupUserControl = new SpravaGridGroupUserControl();

            spravaGridGroupUserControl.Location              = USER_CONTROL_LOCATION;
            spravaGridGroupUserControl.SpravaGridRightClick +=
                new EventHandler <SpravaGridRightClickEventArgs>(spravaGridGroupUserControl1_SpravaGridRightClick);
            //spravaGridGroupUserControl.Size = this.rasporedSudijaUserControl1.Size;
            spravaGridGroupUserControl.init(Sprave.getSprave(takmicenje.Gimnastika)); // odredjuje i Size
            foreach (SpravaGridUserControl c in spravaGridGroupUserControl.SpravaGridUserControls)
            {
                SudijskiOdborNaSpravi odbor = raspored.getOdbor(c.Sprava);
                int odborId = odbor != null ? odbor.Id : 0;
                GridColumnsInitializer.initRasporedSudija(odborId, c.DataGridViewUserControl);
                c.DataGridViewUserControl.DataGridView.ColumnWidthChanged += new DataGridViewColumnEventHandler(DataGridView_ColumnWidthChanged);
            }
            spravaGridGroupUserControl.TabIndex = this.spravaGridGroupUserControl1.TabIndex;

            tabPage.SuspendLayout();
            tabPage.Controls.Add(spravaGridGroupUserControl);
            tabPage.BackColor = this.tabPage1.BackColor;
            tabPage.Location  = this.tabPage1.Location;
            tabPage.Padding   = this.tabPage1.Padding;
            tabPage.Size      = this.tabPage1.Size;
            //tabPage.TabIndex = rasporedi.IndexOf(raspored); // This property is not
            //  meaningful for this control.
            tabPage.AutoScroll        = true;
            tabPage.AutoScrollMinSize = new Size(
                spravaGridGroupUserControl.Right, spravaGridGroupUserControl.Bottom);
            tabPage.AutoScrollMargin = new Size(spravaGridGroupUserControl.Location);
            tabPage.Text             = raspored.Naziv;
            //tabPage.UseVisualStyleBackColor = this.tabPage1.UseVisualStyleBackColor;
            tabPage.ResumeLayout(false);
        }
Example #2
0
 private void createTab(RasporedSudija raspored)
 {
     if (rasporedi.IndexOf(raspored) == 0) // prvi tab
     {
         // init first tab
         if (tabControl1.TabPages.IndexOf(tabPage1) < 0)
         {
             tabControl1.TabPages.Add(tabPage1);
         }
         spravaGridGroupUserControl1.Location              = USER_CONTROL_LOCATION;
         spravaGridGroupUserControl1.SpravaGridRightClick +=
             new EventHandler <SpravaGridRightClickEventArgs>(spravaGridGroupUserControl1_SpravaGridRightClick);
         spravaGridGroupUserControl1.init(Sprave.getSprave(takmicenje.Gimnastika));
         foreach (SpravaGridUserControl c in spravaGridGroupUserControl1.SpravaGridUserControls)
         {
             SudijskiOdborNaSpravi odbor = raspored.getOdbor(c.Sprava);
             int odborId = odbor != null ? odbor.Id : 0;
             GridColumnsInitializer.initRasporedSudija(odborId, c.DataGridViewUserControl);
             c.DataGridViewUserControl.DataGridView.ColumnWidthChanged += new DataGridViewColumnEventHandler(DataGridView_ColumnWidthChanged);
         }
         tabPage1.AutoScroll        = true;
         tabPage1.AutoScrollMinSize = new Size(
             spravaGridGroupUserControl1.Right, spravaGridGroupUserControl1.Bottom);
         tabPage1.AutoScrollMargin =
             new Size(spravaGridGroupUserControl1.Location);
         tabPage1.Text = raspored.Naziv;
     }
     else
     {
         // init other tabs
         TabPage newTab = new TabPage();
         tabControl1.Controls.Add(newTab);
         initTab(newTab, raspored);
     }
 }
Example #3
0
        private void setRaspored(RasporedSudija raspored)
        {
            SpravaGridGroupUserControl c = getActiveSpravaGridGroupUserControl();

            foreach (SudijskiOdborNaSpravi odbor in raspored.Odbori)
            {
                c[odbor.Sprava].setItems(odbor.Raspored);
            }
        }
        public RasporedSudijaEditorForm(int rasporedId, Sprava sprava,
                                        int takmicenjeId)
        {
            InitializeComponent();
            this.takmicenjeId = takmicenjeId;
            spravaGridUserControl1.init(sprava);

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);

                        // TODO: Trebalo bi i NHibernateUtil.Initialize smestiti u
                        // DAO klasu

                        raspored      = DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO().FindByIdFetch(rasporedId);
                        sudijskiOdbor = raspored.getOdbor(sprava);

                        initUI();
                        spravaGridUserControl1.setItems(sudijskiOdbor.Raspored);
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                throw new InfrastructureException(ex.Message, ex);
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }
        }
Example #5
0
        private void loadFromDump(string dump)
        {
            IdMap map = new IdMap();

            // clear
            takmicenje       = new Takmicenje();
            klubovi          = new List <KlubUcesnik>();
            drzave           = new List <DrzavaUcesnik>();
            gimnasticari     = new List <GimnasticarUcesnik>();
            ocene            = new List <Ocena>();
            rasporediNastupa = new List <RasporedNastupa>();
            sudije           = new List <SudijaUcesnik>();
            rasporediSudija  = new List <RasporedSudija>();
            rezTakmicenja    = new List <RezultatskoTakmicenje>();

            using (StringReader reader = new StringReader(dump))
            {
                if (reader.ReadLine() != BILTEN_TAKMICENJE_DUMP)
                {
                    throw new Exception("Neuspesno ucitavanje takmicenja.");
                }

                if (int.Parse(reader.ReadLine()) != Program.VERZIJA_PROGRAMA)
                {
                    throw new Exception("Neuspesno uvozenje takmicenja.\n\nTakmicenje je izvezeno koristeci verziju " +
                                        "programa razlicitu od trenutne, i nije ga moguce uvesti.");
                }

                int prvoKoloId, drugoKoloId, treceKoloId, cetvrtoKoloId;
                int vrhovniSudijaId;

                // load takmicenje
                string id = reader.ReadLine();
                map.takmicenjeMap.Add(int.Parse(id), takmicenje);
                takmicenje.loadFromDump(reader, map, out prvoKoloId, out drugoKoloId,
                                        out treceKoloId, out cetvrtoKoloId, out vrhovniSudijaId);

                // TODO4: Ovde moze da se desi da ID koji je postojao u biltenu iz koga se takmicenje izvozilo ne postoji
                // u biltenu u koji se takmicenje uvozi.
                takmicenje.PrvoKolo = prvoKoloId == -1 ? null :
                                      DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(prvoKoloId);
                takmicenje.DrugoKolo = drugoKoloId == -1 ? null :
                                       DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(drugoKoloId);
                takmicenje.TreceKolo = treceKoloId == -1 ? null :
                                       DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(treceKoloId);
                takmicenje.CetvrtoKolo = cetvrtoKoloId == -1 ? null :
                                         DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(cetvrtoKoloId);

                // Vrhovnog sudiju ucitavam dole (nakon sto ucitam sve sudije ucesnike).

                // load klubovi
                int count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    KlubUcesnik k = new KlubUcesnik();
                    map.kluboviMap.Add(int.Parse(id), k);
                    k.loadFromDump(reader, map);
                    klubovi.Add(k);
                }

                // load drzave
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    DrzavaUcesnik d = new DrzavaUcesnik();
                    map.drzaveMap.Add(int.Parse(id), d);
                    d.loadFromDump(reader, map);
                    drzave.Add(d);
                }

                // load gimnasticari
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    GimnasticarUcesnik g = new GimnasticarUcesnik();
                    map.gimnasticariMap.Add(int.Parse(id), g);
                    g.loadFromDump(reader, map);
                    gimnasticari.Add(g);
                }

                // load ocene
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    Ocena o = new Ocena();
                    o.loadFromDump(reader, map);
                    ocene.Add(o);
                }

                // load rasporedi nastupa
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    RasporedNastupa r = new RasporedNastupa();
                    r.loadFromDump(reader, map);
                    rasporediNastupa.Add(r);
                }

                // load sudije
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    SudijaUcesnik s = new SudijaUcesnik();
                    map.sudijeMap.Add(int.Parse(id), s);
                    s.loadFromDump(reader, map);
                    sudije.Add(s);
                }

                takmicenje.VrhovniSudija = vrhovniSudijaId == -1 ? null : map.sudijeMap[vrhovniSudijaId];

                // load rasporedi sudija
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    RasporedSudija r = new RasporedSudija();
                    r.loadFromDump(reader, map);
                    rasporediSudija.Add(r);
                }

                // load rezultatska takmicenja
                count = int.Parse(reader.ReadLine());
                for (int i = 0; i < count; ++i)
                {
                    id = reader.ReadLine();
                    RezultatskoTakmicenje rt = new RezultatskoTakmicenje();
                    rt.loadFromDump(reader, map);
                    rezTakmicenja.Add(rt);
                }
            }
        }
Example #6
0
        private void insertRasporedSudija(Takmicenje takmicenje)
        {
            TakmicarskaKategorija seniori = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO()
                                            .FindByTakmicenje(takmicenje.Id)[0];
            IList <SudijaUcesnik> sudije_ucesnici = DAOFactoryFactory.DAOFactory.GetSudijaUcesnikDAO().FindByTakmicenje(takmicenje.Id);

            DeoTakmicenjaKod[] deoTakmicenja =
            {
                DeoTakmicenjaKod.Takmicenje1,
                DeoTakmicenjaKod.Takmicenje2
            };
            string[] fileNames;
            if (gimnastika == Gimnastika.MSG)
            {
                fileNames = new string[]
                {
                    @"..\..\test\Data\RasporedSudijaMuskarciKvalifikacije.txt",
                    @"..\..\test\Data\RasporedSudijaMuskarciViseboj.txt"
                }
            }
            ;
            else
            {
                fileNames = new string[]
                {
                    @"..\..\test\Data\RasporedSudijaZeneKvalifikacije.txt",
                    @"..\..\test\Data\RasporedSudijaZeneViseboj.txt"
                }
            };

            for (int i = 0; i < deoTakmicenja.Length; i++)
            {
                List <TakmicarskaKategorija> list = new List <TakmicarskaKategorija>();
                list.Add(seniori);
                RasporedSudija raspored = new RasporedSudija(list,
                                                             deoTakmicenja[i], gimnastika);

                SudijeParser parser = new SudijeParser();
                parser.parse(fileNames[i]);

                Sprava prevSprava           = Sprava.Undefined;
                SudijskiOdborNaSpravi odbor = null;

                foreach (object[] o in parser.SudijskeUloge)
                {
                    SudijskaUloga uloga             = (SudijskaUloga)o[4];
                    bool          clanGlavSudOdbora =
                        false /*uloga >= SudijskaUloga.PredsednikGlavnogSudijskogOdbora
                               * && uloga <= SudijskaUloga.GredaKontrolor*/;
                    if (clanGlavSudOdbora)
                    {
                        continue;
                    }

                    string        ime     = (string)o[0];
                    string        prezime = (string)o[1];
                    SudijaUcesnik sudija  = findSudijaUcesnik(ime, prezime, sudije_ucesnici);
                    if (sudija == null)
                    {
                        throw new Exception("Greska prilikom dodavanja rasporeda sudija.");
                    }

                    Sprava sprava = (Sprava)o[3];
                    if (sprava == prevSprava)
                    {
                        /*if (SudijskeUloge.isMeracVremena(uloga))
                         *  brojMeracaVremena++;
                         * else if (SudijskeUloge.isLinijskiSudija(uloga))
                         *  brojLinijskihSudija++;*/
                    }
                    else
                    {
                        if (prevSprava != Sprava.Undefined)
                        {
                            // podesi broj meraca vremena i linijskih sudija za prethodni
                            // odbor
                            odbor = raspored.getOdbor(prevSprava);
                            odbor.setSupportedUloge(odbor.BrojDSudija, odbor.HasD1_E1, odbor.HasD2_E2, odbor.BrojESudija);
                        }
                        prevSprava = sprava;
                    }

                    raspored.getOdbor(sprava).addSudija(sudija, uloga);
                }
                // podesi broj meraca vremena i linijskih sudija za poslednji odbor
                odbor = raspored.getOdbor(prevSprava);
                odbor.setSupportedUloge(odbor.BrojDSudija, odbor.HasD1_E1, odbor.HasD2_E2, odbor.BrojESudija);

                /*dataContext.Evict(takmicenje);
                 * foreach (SudijaUcesnik s in sudije_ucesnici)
                 *  dataContext.Evict(s);
                 * dataContext.Evict(seniori);
                 */

                DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO().Add(raspored);
            }
        }
Example #7
0
        private void btnNew_Click(object sender, EventArgs e)
        {
            IList <TakmicarskaKategorija> kategorije;
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        kategorije = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO().FindByTakmicenje(takmicenje.Id);
                    }
            }
            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);
            }

            IList <string> kategorijeStr = new List <string>();

            foreach (TakmicarskaKategorija k in kategorije)
            {
                kategorijeStr.Add(k.Naziv);
            }

            string        msg  = "Izaberite kategorije za koje vazi raspored sudija";
            CheckListForm form = new CheckListForm(kategorijeStr, new List <int>(), msg, "Kategorije", true, msg, true);

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

            IList <TakmicarskaKategorija> selKategorije = new List <TakmicarskaKategorija>();

            foreach (int i in form.CheckedIndices)
            {
                selKategorije.Add(kategorije[i]);
            }

            RasporedSudija newRaspored = null;
            bool           added       = false;

            session = null;
            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        newRaspored = new RasporedSudija(selKategorije, deoTakKod, takmicenje.Gimnastika);
                        DAOFactoryFactory.DAOFactory.GetRasporedSudijaDAO().Add(newRaspored);

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

            if (!added)
            {
                Close();
                return;
            }

            rasporedi.Add(newRaspored);
            tabOpened.Add(false);

            createTab(newRaspored);
            if (tabControl1.SelectedIndex != tabControl1.TabPages.Count - 1)
            {
                tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1;
            }
            else
            {
                onSelectedIndexChanged();
            }
        }