private StartListaNaSpravi getStartListaPrethRot(StartListaNaSpravi s, List <List <Sprava> > aktivneSprave) { int i = aktivneSprave[s.Rotacija - 1].IndexOf(s.Sprava); List <Sprava> prethSprave = aktivneSprave[s.Rotacija - 2]; Sprava prethSprava = (i == 0) ? prethSprave[prethSprave.Count - 1] : prethSprave[i - 1]; StartListaNaSpravi result = getStartLista(prethSprava, s.Grupa, s.Rotacija - 1); return(result); }
public SudijskiFormularLista(Izvestaj izvestaj, int pageNum, float y, Font itemFont, Font itemsHeaderFont, StartListaNaSpravi startLista, int brojEOcena, bool stampajRedniBroj, bool stampajKategoriju, bool stampajKlub, DataGridView formGrid) : base(izvestaj, pageNum, y, itemFont, itemsHeaderFont, formGrid) { this.sprava = startLista.Sprava; this.brojEOcena = brojEOcena; this.stampajRedniBroj = stampajRedniBroj; this.stampajKategoriju = stampajKategoriju; this.stampajKlub = stampajKlub; fetchItems(startLista); }
public virtual void prebaciGimnasticare(IList <NastupNaSpravi> nastupi, StartListaNaSpravi from, StartListaNaSpravi to) { foreach (NastupNaSpravi n in nastupi) { if (from.removeNastup(n)) { // Kod prebacivanja ne proveravam da li je gimnasticar vec u nekoj start listi u istoj rotaciji zato // sto je prilikom dodavanja gimnasticara osigurano da gimnasticar moze da bude u samo jednoj start // listi u rotaciji). to.addNastup(new NastupNaSpravi(n.Gimnasticar, 0)); } } }
public StartListaLista(Izvestaj izvestaj, int pageNum, float y, Font itemFont, Font itemsHeaderFont, StartListaNaSpravi startLista, bool stampajRedniBroj, bool stampajKlub, bool stampajKategoriju, bool sveSpraveNaJednojStrani, int columnNumber, DataGridView formGrid) : base(izvestaj, pageNum, y, itemFont, itemsHeaderFont, formGrid) { this.sprava = startLista.Sprava; this.stampajRedniBroj = stampajRedniBroj; this.stampajKlub = stampajKlub; this.stampajKategoriju = stampajKategoriju; this.sveSpraveNaJednojStrani = sveSpraveNaJednojStrani; this.columnNumber = columnNumber; this.praznaLista = startLista.Nastupi.Count == 0; fetchItems(startLista); }
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; } }
public virtual void loadFromDump(StringReader reader, IdMap map) { DeoTakmicenjaKod = (DeoTakmicenjaKod)Enum.Parse(typeof(DeoTakmicenjaKod), reader.ReadLine()); string line = reader.ReadLine(); Naziv = line != NULL ? line : null; line = reader.ReadLine(); Takmicenje = line != NULL ? map.takmicenjeMap[int.Parse(line)] : null; PauzeMask = int.Parse(reader.ReadLine()); int count = int.Parse(reader.ReadLine()); for (int i = 0; i < count; ++i) { reader.ReadLine(); // id StartListaNaSpravi s = new StartListaNaSpravi(); s.loadFromDump(reader, map); StartListe.Add(s); } }
public virtual void kreirajRotaciju(int grupa, int rot, List <List <Sprava> > aktivneSprave) { foreach (Sprava s in Sprave.getSpraveIPauze(PauzeMask, Takmicenje.Gimnastika)) { StartListaNaSpravi startLista = getStartLista(s, grupa, rot); startLista.clear(); if (aktivneSprave[rot - 1].IndexOf(s) == -1) { // Sprava nije aktivna u rotaciji. continue; } StartListaNaSpravi startListaPrethRot = getStartListaPrethRot(startLista, aktivneSprave); if (startListaPrethRot.Nastupi.Count == 0) { continue; } if (Sprave.isPraznaSprava(startListaPrethRot.Sprava)) { // Ako je prethodna sprava pauza, samo prebacujem gimnasticare na novu spravu, bez obzira koji je // nacin rotacije. Rotacija je izvrsena kada sam prebacivao sa sprave na pauzu. foreach (NastupNaSpravi n in startListaPrethRot.Nastupi) { startLista.addNastup(new NastupNaSpravi(n.Gimnasticar, n.Ekipa)); } continue; } // Nadji nacin rotacije (u start listi na prvoj rotaciji). StartListaNaSpravi current = startListaPrethRot; while (current.Rotacija != 1) { current = getStartListaPrethRot(current, aktivneSprave); } NacinRotacije nacinRotacije = current.NacinRotacije; if (nacinRotacije == NacinRotacije.RotirajSve || nacinRotacije == NacinRotacije.NeRotirajNista) { foreach (NastupNaSpravi n in startListaPrethRot.Nastupi) { startLista.addNastup(new NastupNaSpravi(n.Gimnasticar, n.Ekipa)); } if (nacinRotacije == NacinRotacije.RotirajSve) { NastupNaSpravi n2 = startLista.Nastupi[0]; startLista.removeNastup(n2); startLista.addNastup(n2); } } else if (nacinRotacije == NacinRotacije.RotirajEkipeRotirajGimnasticare || nacinRotacije == NacinRotacije.NeRotirajEkipeRotirajGimnasticare) { // Najpre pronadji ekipe List <List <NastupNaSpravi> > listaEkipa = new List <List <NastupNaSpravi> >(); int m = 0; while (m < startListaPrethRot.Nastupi.Count) { NastupNaSpravi n = startListaPrethRot.Nastupi[m]; byte ekipaId = n.Ekipa; if (ekipaId == 0) { List <NastupNaSpravi> pojedinac = new List <NastupNaSpravi>(); pojedinac.Add(new NastupNaSpravi(n.Gimnasticar, 0)); listaEkipa.Add(pojedinac); ++m; continue; } List <NastupNaSpravi> novaEkipa = new List <NastupNaSpravi>(); while (n.Ekipa == ekipaId) { novaEkipa.Add(new NastupNaSpravi(n.Gimnasticar, ekipaId)); if (++m < startListaPrethRot.Nastupi.Count) { n = startListaPrethRot.Nastupi[m]; } else { break; } } listaEkipa.Add(novaEkipa); } if (nacinRotacije == NacinRotacije.RotirajEkipeRotirajGimnasticare) { // Rotiraj ekipe List <NastupNaSpravi> prvaEkipa = listaEkipa[0]; listaEkipa.RemoveAt(0); listaEkipa.Add(prvaEkipa); } foreach (List <NastupNaSpravi> ekipa in listaEkipa) { // Rotiraj clanove ekipe NastupNaSpravi nastup = ekipa[0]; ekipa.RemoveAt(0); ekipa.Add(nastup); foreach (NastupNaSpravi n in ekipa) { startLista.addNastup(new NastupNaSpravi(n.Gimnasticar, n.Ekipa)); } } } } }
public StartListaIzvestaj(StartListaNaSpravi startLista, string documentName, bool stampajRedniBroj, bool stampajKlub, bool stampajKategoriju, DataGridView formGrid) { DocumentName = documentName; Font itemFont = new Font("Arial", itemFontSize); Font itemsHeaderFont = new Font("Arial", itemFontSize, FontStyle.Bold); svakaSpravaNaPosebnojStrani = true; reportListe.Add(new StartListaLista(this, 1, 0f, itemFont, itemsHeaderFont, startLista, stampajRedniBroj, stampajKlub, stampajKategoriju, false, 1, formGrid)); }
private List<object[]> getStartListaReportItems(StartListaNaSpravi startLista) { List<object[]> result = new List<object[]>(); for (int i = 0; i < startLista.Nastupi.Count; i++) { string redBroj = stampajRedniBroj ? (i+1).ToString() : String.Empty; NastupNaSpravi nastup = startLista.Nastupi[i]; result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.KlubDrzava, nastup.Kategorija }); } if (result.Count == 0) // hack kojim se obezbedjuje da se stampaju hederi i za liste koje su prazne result.Add(new object[] { "", "", "", "" }); return result; }
private void fetchItems(StartListaNaSpravi startLista) { items = getStartListaReportItems(startLista); groups = new List<ReportGrupa>(); groups.Add(new ReportGrupa(0, items.Count)); }
public SudijskiFormularIzvestaj(StartListaNaSpravi startLista, string documentName, int brojEOcena, bool stampajRedniBroj, bool stampajKategoriju, bool stampajKlub, DataGridView formGrid) { DocumentName = documentName; Font itemFont = new Font("Arial", itemFontSize); Font itemsHeaderFont = new Font("Arial", itemFontSize, FontStyle.Bold); svakaSpravaNaPosebnojStrani = true; Landscape = true; Margins = new Margins(30, 30, 75, 75); SudijskiFormularLista lista = new SudijskiFormularLista(this, 1, 0f, itemFont, itemsHeaderFont, startLista, brojEOcena, stampajRedniBroj, stampajKategoriju, stampajKlub, formGrid); lista.RelY = 0.0f + 0.03f; reportListe.Add(lista); }
private List<object[]> getStartListaReportItems(StartListaNaSpravi startLista) { List<object[]> result = new List<object[]>(); for (int i = 0; i < startLista.Nastupi.Count; i++) { string redBroj = stampajRedniBroj ? (i+1).ToString() : String.Empty; NastupNaSpravi nastup = startLista.Nastupi[i]; if (startLista.Sprava != Sprava.Preskok) { if (brojEOcena == 0) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "" }); else if (brojEOcena == 1) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "", "" }); else if (brojEOcena == 2) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "", "", "" }); else if (brojEOcena == 3) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "", "", "", "" }); else if (brojEOcena == 4) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "", "", "", "", "" }); else if (brojEOcena == 5) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "", "", "", "", "", "" }); else if (brojEOcena == 6) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "", "", "", "", "", "", "", "", "", "" }); } else { if (brojEOcena == 0) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", ""}); else if (brojEOcena == 1) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", "", "", "" }); else if (brojEOcena == 2) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", "", "", "", "", "" }); else if (brojEOcena == 3) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); else if (brojEOcena == 4) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); else if (brojEOcena == 5) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); else if (brojEOcena == 6) result.Add(new object[] { redBroj, nastup.PrezimeIme, nastup.Kategorija, nastup.KlubDrzava, "1", "2", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); } } return result; }
private void kompaktujEkipu(byte ekipa, StartListaNaSpravi startLista) { int start = -1; int end = -1; for (int i = 0; i < startLista.Nastupi.Count; ++i) { NastupNaSpravi n = startLista.Nastupi[i]; if (n.Ekipa == ekipa) { if (start == -1) start = i; end = i; } } for (int i = start; i <= end; ++i) { NastupNaSpravi n = startLista.Nastupi[i]; n.Ekipa = ekipa; } }
private byte findFragmentedEkipa(StartListaNaSpravi startLista) { List<byte> ekipe = new List<byte>(); byte prevEkipa = 0; for (int i = 0; i < startLista.Nastupi.Count; ++i) { NastupNaSpravi n = startLista.Nastupi[i]; if (n.Ekipa != prevEkipa) { // Nasli smo novu ekipu (ili pojedinca) n.Ekipa, sto znaci da se time zavrsava prevEkipa. if (prevEkipa > 0) ekipe.Add(prevEkipa); // Proveri da li je nova ekipa n.Ekipa ranije vec pronadjena. if (n.Ekipa > 0 && ekipe.IndexOf(n.Ekipa) != -1) { // Clanovi ekipe n.Ekipa nisu uzastopni. return n.Ekipa; } prevEkipa = n.Ekipa; } } return 0; }