Example #1
0
        public static Sprava[] getSpraveIPauze(int pauzeMask, Gimnastika gim)
        {
            List <Sprava> result        = new List <Sprava>();
            int           spravaIndex   = 1;
            int           pauzaIndex    = 1;
            int           maxPauzaIndex = 12; // 6 sprava + 6 pauza

            if (gim == Gimnastika.ZSG)
            {
                maxPauzaIndex = 10;
            }
            for (int i = 1; i <= maxPauzaIndex; ++i)
            {
                if (RasporedNastupa.isPauzaSet(pauzeMask, i))
                {
                    result.Add((Sprava)((int)Sprava.PraznaSprava1 + pauzaIndex - 1));
                    ++pauzaIndex;
                }
                else
                {
                    if ((gim == Gimnastika.MSG && spravaIndex <= 6) || (gim == Gimnastika.ZSG && spravaIndex <= 4))
                    {
                        result.Add(Sprave.getSprava(spravaIndex, gim));
                        ++spravaIndex;
                    }
                }
            }
            return(result.ToArray());
        }
Example #2
0
        public RasporedSudija(IList <TakmicarskaKategorija> kategorije,
                              DeoTakmicenjaKod deoTakKod, Gimnastika gimnastika)
        {
            if (kategorije.Count == 0)
            {
                throw new ArgumentException("Kategorije ne smeju da budu prazne.");
            }

            this.Naziv      = RasporedNastupa.kreirajNaziv(kategorije);
            this.deoTakKod  = deoTakKod;
            this.takmicenje = kategorije[0].Takmicenje;

            Sprava[] sprave = Sprave.getSprave(gimnastika);
            foreach (Sprava s in sprave)
            {
                odbori.Add(new SudijskiOdborNaSpravi(s));
            }
        }
        public StartListaRotEditorForm(int rasporedId, Sprava sprava,
            int grupa, int rotacija, int takmicenjeId, Color[] bojeZaEkipe)
        {
            InitializeComponent();
            this.takmicenjeId = takmicenjeId;
            this.rotacija = rotacija;
            this.bojeZaEkipe = bojeZaEkipe;

            spravaGridUserControl1.init(sprava);
            spravaGridUserControl1.DataGridViewUserControl.DataGridView.CellFormatting += new DataGridViewCellFormattingEventHandler(DataGridView_CellFormatting);
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                raspored = loadRaspored(rasporedId);
                startLista = raspored.getStartLista(sprava, grupa, rotacija);
                foreach (NastupNaSpravi n in startLista.Nastupi)
                {
                    //  potrebno za slucaj kada se u start listi nalaze i gimnasticari iz kategorija razlicitih od kategorija
                    // za koje start lista vazi.
                    NHibernateUtil.Initialize(n.Gimnasticar.TakmicarskaKategorija);
                }

                initUI();
                spravaGridUserControl1.setItems(startLista.Nastupi);

            //    dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                throw new InfrastructureException(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }
        }
Example #4
0
        private string getTabText(RasporedNastupa rasporedNastupa)
        {
            List<TakmicarskaKategorija> kategorije =
                new List<TakmicarskaKategorija>(rasporedNastupa.Kategorije);

            if (kategorije.Count == 0)
                return String.Empty;

            PropertyDescriptor propDesc =
                TypeDescriptor.GetProperties(typeof(TakmicarskaKategorija))["RedBroj"];
            kategorije.Sort(new SortComparer<TakmicarskaKategorija>(
                propDesc, ListSortDirection.Ascending));

            string retValue = kategorije[0].ToString();
            for (int i = 1; i < kategorije.Count; i++)
                retValue = retValue + ", " + kategorije[i].ToString();
            return retValue;
        }
Example #5
0
        private StartListaNaSpravi getStartListaPrethRot(RasporedNastupa ActiveRaspored, int ActiveGrupa, int rot,
            Sprava sprava, List<List<Sprava>> aktivneSprave)
        {
            List<Sprava> sprave = aktivneSprave[rot - 1];
            int i = sprave.IndexOf(sprava);
            if (i == -1)
                // Sprava nije aktivna u rotaciji.
                return null;

            List<Sprava> prethSprave = aktivneSprave[rot - 2];

            Sprava prethSprava = (i == 0) ? prethSprave[prethSprave.Count - 1] : prethSprave[i - 1];
            StartListaNaSpravi result = ActiveRaspored.getStartLista(prethSprava, ActiveGrupa, rot - 1);
            return result;
        }
Example #6
0
 private void createTab(RasporedNastupa 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(rasporedi[0].Pol);
         foreach (SpravaGridUserControl c in spravaGridGroupUserControl1.SpravaGridUserControls)
         {
             c.DataGridViewUserControl.DataGridView.CellFormatting +=
                 new DataGridViewCellFormattingEventHandler(DataGridView_CellFormatting);
             c.DataGridViewUserControl.DataGridView.ColumnWidthChanged +=
                 new DataGridViewColumnEventHandler(DataGridView_ColumnWidthChanged);
             c.DataGridViewUserControl.DataGridView.KeyDown += DataGridView_KeyDown;
             c.DataGridViewUserControl.DataGridView.MouseDoubleClick += DataGridView_MouseDoubleClick;
         }
         tabPage1.AutoScroll = true;
         tabPage1.AutoScrollMinSize = new Size(
             spravaGridGroupUserControl1.Right, spravaGridGroupUserControl1.Bottom);
         tabPage1.AutoScrollMargin =
             new Size(spravaGridGroupUserControl1.Location);
         tabPage1.Text = getTabText(raspored);
     }
     else
     {
         // init other tabs
         TabPage newTab = new TabPage();
         tabControl1.Controls.Add(newTab);
         initTab(newTab, raspored);
     }
 }
Example #7
0
        private void btnNew_Click(object sender, EventArgs e)
        {
            IList<TakmicarskaKategorija> dodeljeneKategorije = getDodeljeneKategorije();
            if (dodeljeneKategorije.Count == kategorijeCount)
            {
                MessageDialogs.showMessage(
                    "Vec su odredjene start liste za sve kategorije.", this.Text);
                return;
            }

            string msg = "Izaberite kategorije za koje vazi start lista";
            DialogResult dlgResult = DialogResult.None;
            SelectKategorijaForm form = null;
            try
            {
                form = new SelectKategorijaForm(takmicenje.Id, dodeljeneKategorije,
                    false, msg);
                dlgResult = form.ShowDialog();
            }
            catch (InfrastructureException ex)
            {
                MessageDialogs.showError(ex.Message, this.Text);
                return;
            }

            if (dlgResult != DialogResult.OK || form.SelektovaneKategorije.Count == 0)
                return;

            RasporedNastupa newRaspored = null;
            bool added = false;
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                newRaspored = new RasporedNastupa(form.SelektovaneKategorije, deoTakKod);
                dataContext.Add(newRaspored);

                dataContext.Commit();
                added = true;
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showMessage(
                    Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

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

            rasporedi.Add(newRaspored);

            tabOpened.Add(false);
            grupa.Add(0);
            rot.Add(0);

            createTab(newRaspored);
            if (tabControl1.SelectedIndex != tabControl1.TabPages.Count - 1)
                tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1;
            else
                onSelectedTabIndexChanged();
        }
Example #8
0
 private void setStartListe(RasporedNastupa raspored, int g, int r)
 {
     SpravaGridGroupUserControl c = getActiveSpravaGridGroupUserControl();
     foreach (SpravaGridUserControl c2 in c.SpravaGridUserControls)
         c2.clearItems();
     foreach (StartListaNaSpravi s in raspored.getStartListe(g, r))
         c[s.Sprava].setItems(s.Nastupi);
 }
Example #9
0
        private void initTab(TabPage tabPage, RasporedNastupa raspored)
        {
            // TODO: Kod u ovom metodu je prekopiran iz Designer.cs fajla (plus ono
            // sto sam dodao u createTab metodu). Proveri da li je u Designer.cs fajlu
            // nesto menjano, i ako jeste promeni ovde.
            SpravaGridGroupUserControl spravaGridGroupUserControl = new SpravaGridGroupUserControl();
            spravaGridGroupUserControl.Location = USER_CONTROL_LOCATION;
            spravaGridGroupUserControl.SpravaGridRightClick +=
                new EventHandler<SpravaGridRightClickEventArgs>(spravaGridGroupUserControl1_SpravaGridRightClick);
            //spravaGridGroupUserControl.Size = this.rasporedSudijaUserControl1.Size;
            spravaGridGroupUserControl.init(raspored.Pol); // odredjuje i Size
            foreach (SpravaGridUserControl c in spravaGridGroupUserControl.SpravaGridUserControls)
            {
                c.DataGridViewUserControl.DataGridView.CellFormatting +=
                    new DataGridViewCellFormattingEventHandler(DataGridView_CellFormatting);
                c.DataGridViewUserControl.DataGridView.ColumnWidthChanged +=
                    new DataGridViewColumnEventHandler(DataGridView_ColumnWidthChanged);
                c.DataGridViewUserControl.DataGridView.KeyDown += DataGridView_KeyDown;
                c.DataGridViewUserControl.DataGridView.MouseDoubleClick += DataGridView_MouseDoubleClick;
            }
            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 = getTabText(raspored);
            //tabPage.UseVisualStyleBackColor = this.tabPage1.UseVisualStyleBackColor;
            tabPage.ResumeLayout(false);
        }
Example #10
0
        private void insertStartListe()
        {
            Takmicenje takmicenje = loadTakmicenje("Milano");
            TakmicarskaKategorija seniori = loadKategorija(takmicenje);

            Query q = new Query();
            q.Criteria.Add(new Criterion("Takmicenje", CriteriaOperator.Equal, takmicenje));
            IList<GimnasticarUcesnik> gim_uces = dataContext.GetByCriteria<GimnasticarUcesnik>(q);
            Dictionary<int, GimnasticarUcesnik> gim_ucesnici = new Dictionary<int, GimnasticarUcesnik>();
            foreach (GimnasticarUcesnik g in gim_uces)
                gim_ucesnici.Add(g.TakmicarskiBroj.Value, g);

            DeoTakmicenjaKod[] deoTakmicenja = {
                DeoTakmicenjaKod.Takmicenje1,
                DeoTakmicenjaKod.Takmicenje2,
                DeoTakmicenjaKod.Takmicenje3
            };
            string[] fileNames;
            if (gimnastika == Gimnastika.MSG)
                fileNames = new string[]
                {
                    @"..\..\test\Data\StartListaKvalifikacijeMuskarci.txt",
                    @"..\..\test\Data\StartListaVisebojMuskarci.txt",
                    @"..\..\test\Data\StartListaSpraveMuskarci.txt"
                };
            else
                fileNames = new string[]
                {
                    @"..\..\test\Data\StartListaKvalifikacijeZene.txt",
                    @"..\..\test\Data\StartListaVisebojZene.txt",
                    @"..\..\test\Data\StartListaSpraveZene.txt"
                };

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

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

                foreach (object[] o in parser.NastupiNaSpravi)
                {
                    Sprava sprava = Sprave.parse((string)o[0]);
                    int grupa = (int)o[1];
                    int rot = (int)o[2];
                    int broj = (int)o[3];
                    bool nastupaDvaPuta = (bool)o[4];

                    GimnasticarUcesnik gimnasticar = gim_ucesnici[broj];
                    if (gimnasticar == null)
                        throw new Exception("Greska prilikom dodavanja rasporeda nastupa.");
                    NastupNaSpravi nastup = new NastupNaSpravi(gimnasticar, 0);

                    while (raspored.getStartLista(sprava, grupa, rot) == null)
                        raspored.addNewGrupa();
                    raspored.getStartLista(sprava, grupa, rot).addNastup(nastup);
                }

                /*     dataContext.Evict(takmicenje);
                     foreach (GimnasticarUcesnik g in gim_uces)
                         dataContext.Evict(g);
                     dataContext.Evict(seniori);
                     */

                dataContext.Add(raspored);
            }
        }