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