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;
            }
        }
Exemple #2
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;
        }
Exemple #3
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);
            }
        }