コード例 #1
0
ファイル: VrhovniSudijaForm.cs プロジェクト: stankela/bilten
        public VrhovniSudijaForm(int takmicenjeId)
        {
            InitializeComponent();
            this.takmicenjeId = takmicenjeId;

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

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        Takmicenje takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId);
                        NHibernateUtil.Initialize(takmicenje);

                        sudije = new List <SudijaUcesnik>(
                            DAOFactoryFactory.DAOFactory.GetSudijaUcesnikDAO().FindByTakmicenjeFetchKlubDrzava(takmicenjeId));

                        PropertyDescriptor[] propDesc = new PropertyDescriptor[] {
                            TypeDescriptor.GetProperties(typeof(SudijaUcesnik))["Prezime"],
                            TypeDescriptor.GetProperties(typeof(SudijaUcesnik))["Ime"]
                        };
                        ListSortDirection[] sortDir = new ListSortDirection[] {
                            ListSortDirection.Ascending,
                            ListSortDirection.Ascending
                        };
                        sudije.Sort(new SortComparer <SudijaUcesnik>(propDesc, sortDir));

                        SudijaUcesnik emptySudija = new SudijaUcesnik();
                        emptySudija.Prezime = PRAZNO;
                        emptySudija.Ime     = "";
                        sudije.Insert(0, emptySudija);

                        cmbVrhovniSudija.DropDownStyle      = ComboBoxStyle.DropDown;
                        cmbVrhovniSudija.DataSource         = sudije;
                        cmbVrhovniSudija.DisplayMember      = "PrezimeIme";
                        cmbVrhovniSudija.AutoCompleteMode   = AutoCompleteMode.Suggest;
                        cmbVrhovniSudija.AutoCompleteSource = AutoCompleteSource.ListItems;

                        SelectedVrhovniSudija = takmicenje.VrhovniSudija;
                    }
            }
            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);
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
            }
        }
コード例 #2
0
        private List <object[]> getTakmicariReportItems(IList <SudijaUcesnik> gimnasticari)
        {
            List <object[]> result = new List <object[]>();

            for (int i = 0; i < gimnasticari.Count; ++i)
            {
                SudijaUcesnik g      = gimnasticari[i];
                string        klub   = (g.KlubUcesnik != null) ? g.KlubUcesnik.Naziv : String.Empty;
                string        drzava = (g.DrzavaUcesnik != null) ? g.DrzavaUcesnik.Kod : string.Empty;
                string        pol    = (g.Pol == Pol.Muski) ? "M" : "Z";
                result.Add(new object[] { (i + 1).ToString(), g.Ime, g.Prezime, pol,
                                          klub, drzava });
            }
            return(result);
        }
コード例 #3
0
ファイル: TakmicenjeDump.cs プロジェクト: stankela/bilten
        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);
                }
            }
        }
コード例 #4
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);
            }
        }
コード例 #5
0
        private void insertSudijeUcesnici(Takmicenje takmicenje)
        {
            IList <DrzavaUcesnik> drzave = DAOFactoryFactory.DAOFactory.GetDrzavaUcesnikDAO().FindByTakmicenje(takmicenje.Id);

            ISet <SudijaUcesnik> sudije = new HashSet <SudijaUcesnik>();

            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 < fileNames.Length; i++)
            {
                SudijeParser parser = new SudijeParser();
                parser.parse(fileNames[i]);

                Pol pol = Pol.Muski;
                if (gimnastika == Gimnastika.ZSG)
                {
                    pol = Pol.Zenski;
                }
                foreach (object[] o in parser.SudijskeUloge)
                {
                    string        ime     = (string)o[0];
                    string        prezime = (string)o[1];
                    string        kod     = (string)o[2];
                    SudijskaUloga uloga   = (SudijskaUloga)o[4];

                    /*bool clanGlavSudOdbora =
                     *  uloga >= SudijskaUloga.PredsednikGlavnogSudijskogOdbora
                     *  && uloga <= SudijskaUloga.GredaKontrolor;*/

                    SudijaUcesnik sudija = new SudijaUcesnik();
                    sudija.Ime     = ime;
                    sudija.Prezime = prezime;
                    sudija.Pol     = pol;

                    /*if (clanGlavSudOdbora)
                     *  sudija.UlogaUGlavnomSudijskomOdboru = uloga;
                     * else
                     *  sudija.UlogaUGlavnomSudijskomOdboru = SudijskaUloga.Undefined;*/
                    sudija.DrzavaUcesnik = findDrzavaUcesnik(kod, drzave);
                    if (sudija.DrzavaUcesnik == null)
                    {
                        throw new Exception("Greska prilikom dodavanja sudija ucesnika.");
                    }

                    sudija.Takmicenje = takmicenje;

                    if (sudije.Add(sudija))
                    {
                        DAOFactoryFactory.DAOFactory.GetSudijaUcesnikDAO().Add(sudija);
                    }
                }
            }

            /*foreach (DrzavaUcesnik d in drzave)
             *  dataContext.Evict(d);*/
        }
コード例 #6
0
        public RasporedSudijaIzvestaj(List <SudijskiOdborNaSpravi> odbori, Gimnastika gim,
                                      string documentName, int brojSpravaPoStrani, SpravaGridGroupUserControl spravaGridGroupUserControl,
                                      SudijaUcesnik vrhovniSudija)
        {
            DocumentName = documentName;
            if (vrhovniSudija != null)
            {
                this.vrhovniSudija = vrhovniSudija.PrezimeIme;
                if (vrhovniSudija.Pol == Pol.Muski)
                {
                    vrhovniSudijaCaption = "Vrhovni sudija: ";
                }
                else
                {
                    vrhovniSudijaCaption = "Vrhovna sutkinja: ";
                }
            }
            else
            {
                this.vrhovniSudija = String.Empty;
                if (gim == Gimnastika.MSG)
                {
                    vrhovniSudijaCaption = "Vrhovni sudija: ";
                }
                else
                {
                    vrhovniSudijaCaption = "Vrhovna sutkinja: ";
                }
            }
            stampajVrhovnogSudiju = true;

            Font itemFont        = new Font("Arial", itemFontSize);
            Font itemsHeaderFont = new Font("Arial", itemFontSize, FontStyle.Bold);

            vrhovniSudijaCaptionFont = new Font("Arial", 11, FontStyle.Bold);
            vrhovniSudijaFont        = new Font("Arial", 11);

            svakaSpravaNaPosebnojStrani = brojSpravaPoStrani == 1;
            bool sveSpraveNaJednojStrani = brojSpravaPoStrani > 3;

            if (sveSpraveNaJednojStrani)
            {
                Margins = new Margins(50, 50, 100, 100);
            }

            Sprava[] sprave = Sprave.getSprave(gim);
            for (int i = 0; i < sprave.Length; i++)
            {
                Sprava sprava = sprave[i];
                int    page;
                float  relY;
                int    columnNumber = 1;
                if (sveSpraveNaJednojStrani)
                {
                    page         = 1;
                    relY         = (i / 2) * (1 / 3f) + 0.05f;
                    columnNumber = (i % 2 == 0) ? 1 : 2;
                }
                else if (brojSpravaPoStrani == 2 || brojSpravaPoStrani == 3)
                {
                    page = (i / brojSpravaPoStrani) + 1;
                    relY = (i % brojSpravaPoStrani) / (brojSpravaPoStrani * 1f) + 0.03f;
                }
                else // brojSpravaPoStrani == 1
                {
                    page = i + 1;
                    relY = 0.0f + 0.03f;
                }
                RasporedSudijaLista lista = new RasporedSudijaLista(this, page, 0f, itemFont, itemsHeaderFont,
                                                                    odbori[i], sveSpraveNaJednojStrani, columnNumber,
                                                                    spravaGridGroupUserControl[sprava].DataGridViewUserControl.DataGridView);
                lista.RelY = relY;
                reportListe.Add(lista);
            }
        }