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);

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

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

                        gimnastika = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenjeId).Gimnastika;
                        raspored   = DAOFactoryFactory.DAOFactory.GetRasporedNastupaDAO().FindByIdFetch(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);
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                throw new InfrastructureException(ex.Message, ex);
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }
        }
Beispiel #2
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);
                }
            }
        }
Beispiel #3
0
        private void insertStartListe(Takmicenje takmicenje)
        {
            TakmicarskaKategorija seniori = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO()
                                            .FindByTakmicenje(takmicenje.Id)[0];

            IList <GimnasticarUcesnik> gim_uces = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO()
                                                  .FindByTakmicenje(takmicenje.Id);
            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], gimnastika, 0);

                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(gimnastika);
                    }
                    raspored.getStartLista(sprava, grupa, rot).addNastup(nastup);
                }

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

                DAOFactoryFactory.DAOFactory.GetRasporedNastupaDAO().Add(raspored);
            }
        }