Exemplo n.º 1
0
        public RasporedSudijaEditorForm(int rasporedId, Sprava sprava,
            int takmicenjeId)
        {
            InitializeComponent();
            this.takmicenjeId = takmicenjeId;
            spravaGridUserControl1.init(sprava);
            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

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

                raspored = loadRaspored(rasporedId);
                sudijskiOdbor = raspored.getOdbor(sprava);

                initUI();
                spravaGridUserControl1.setItems(sudijskiOdbor.Raspored);

              //  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;
            }
        }
Exemplo n.º 2
0
 private void setRaspored(RasporedSudija raspored)
 {
     SpravaGridGroupUserControl c = getActiveSpravaGridGroupUserControl();
     foreach (SudijskiOdborNaSpravi odbor in raspored.Odbori)
     {
         c[odbor.Sprava].setItems(odbor.Raspored);
     }
 }
Exemplo n.º 3
0
        private void initTab(TabPage tabPage, RasporedSudija 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)
            {
                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 = getTabText(raspored);
            //tabPage.UseVisualStyleBackColor = this.tabPage1.UseVisualStyleBackColor;
            tabPage.ResumeLayout(false);
        }
Exemplo n.º 4
0
        private string getTabText(RasporedSudija rasporedSudija)
        {
            // TODO: Obradi slucaj kada raspored vazi za vise kategorija
            List<TakmicarskaKategorija> kategorije =
                new List<TakmicarskaKategorija>(rasporedSudija.Kategorije);

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

            if (kategorije.Count == 0)
                return String.Empty;
            else
                return kategorije[0].ToString();
        }
Exemplo n.º 5
0
        private string getFirstKategorijaText(RasporedSudija rasporedSudija)
        {
            List<TakmicarskaKategorija> kategorije =
                new List<TakmicarskaKategorija>(rasporedSudija.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;
        }
Exemplo n.º 6
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(rasporedi[0].Pol);
         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 = getTabText(raspored);
     }
     else
     {
         // init other tabs
         TabPage newTab = new TabPage();
         tabControl1.Controls.Add(newTab);
         initTab(newTab, raspored);
     }
 }
Exemplo n.º 7
0
        private void btnNew_Click(object sender, EventArgs e)
        {
            IList<TakmicarskaKategorija> dodeljeneKategorije = getDodeljeneKategorije();
            if (dodeljeneKategorije.Count == kategorijeCount)
            {
                MessageDialogs.showMessage(
                    "Vec su odredjeni rasporedi sudija za sve kategorije.", this.Text);
                return;
            }

            string msg = "Izaberite kategorije za koje vazi raspored sudija";
            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;

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

                newRaspored = new RasporedSudija(form.SelektovaneKategorije, deoTakKod, takmicenje);
                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);

            createTab(newRaspored);
            if (tabControl1.SelectedIndex != tabControl1.TabPages.Count - 1)
                tabControl1.SelectedIndex = tabControl1.TabPages.Count - 1;
            else
                onSelectedIndexChanged();
        }
Exemplo n.º 8
0
        private void insertRasporedSudija()
        {
            Takmicenje takmicenje = loadTakmicenje("Milano");
            TakmicarskaKategorija seniori = loadKategorija(takmicenje);

            Query q = new Query();
            q.Criteria.Add(new Criterion("Takmicenje", CriteriaOperator.Equal, takmicenje));
            IList<SudijaUcesnik> sudije_ucesnici = dataContext.GetByCriteria<SudijaUcesnik>(q);

            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], takmicenje);

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

                Sprava prevSprava = Sprava.Undefined;
                int brojMeracaVremena = 0;
                int brojLinijskihSudija = 0;
                SudijskiOdborNaSpravi odbor = null;

                foreach (object[] o in parser.SudijskeUloge)
                {
                    SudijskaUloga uloga = (SudijskaUloga)o[4];
                    bool clanGlavSudOdbora =
                        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,
                                (byte)brojMeracaVremena, (byte)brojLinijskihSudija);
                        }
                        prevSprava = sprava;
                        brojMeracaVremena = 0;
                        brojLinijskihSudija = 0;
                    }

                    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,
                    (byte)brojMeracaVremena, (byte)brojLinijskihSudija);

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

                dataContext.Add(raspored);
            }
        }