void ckb_CheckedChanged(object sender, EventArgs e) { CheckBox ckb = sender as CheckBox; if (ckb.Checked) { SudijskaUloga uloga = (SudijskaUloga)ckb.Tag; if (uloga == SudijskaUloga.D1 || uloga == SudijskaUloga.E1) { setChecked(SudijskaUloga.D1_E1, false); } else if (uloga == SudijskaUloga.D2 || uloga == SudijskaUloga.E2) { setChecked(SudijskaUloga.D2_E2, false); } else if (uloga == SudijskaUloga.D1_E1) { setChecked(SudijskaUloga.D1, false); setChecked(SudijskaUloga.E1, false); } else if (uloga == SudijskaUloga.D2_E2) { setChecked(SudijskaUloga.D2, false); setChecked(SudijskaUloga.E2, false); } } }
private void doAddSudija(SudijaUcesnik sudija, SudijskaUloga uloga) { // NOTE: Bitno je da se koristi svojstvo Sudije a ne polje sudije // zbog lazy inicijalizacije Sudije.Add((byte)uloga, sudija); addToRaspored(sudija, uloga); }
private void setChecked(SudijskaUloga uloga, bool value) { CheckBox ckb = getCheckBox(uloga); if (ckb != null) { ckb.Checked = value; } }
public virtual bool removeSudija(SudijskaUloga uloga) { if (Sudije.Remove((byte)uloga)) { removeSudijaFromRaspored(uloga); return(true); } return(false); }
private SudijaUcesnik getSudija(SudijskaUloga uloga) { if (Sudije.ContainsKey((byte)uloga)) { return(Sudije[(byte)uloga]); } else { return(null); } }
public static bool isLinijskiSudija(SudijskaUloga uloga) { foreach (SudijskaUloga u in linijskeSudije()) { if (u == uloga) { return(true); } } return(false); }
public static bool isMeracVremena(SudijskaUloga uloga) { foreach (SudijskaUloga u in meraciVremena()) { if (u == uloga) { return(true); } } return(false); }
private void removeSudijaFromRaspored(SudijskaUloga uloga) { foreach (SudijaNaSpravi s in this.Raspored) { if (s.Uloga == uloga) { s.Sudija = null; return; } } }
private CheckBox getCheckBox(SudijskaUloga uloga) { foreach (Control c in this.Controls) { CheckBox ckb = c as CheckBox; if (ckb != null && ((SudijskaUloga)ckb.Tag == uloga)) { return(ckb); } } return(null); }
private void addToRaspored(SudijaUcesnik sudija, SudijskaUloga uloga) { // bitno je da se koristi svojstvo Raspored a ne polje raspored zato sto // se Raspored lazy inicijalizuje foreach (SudijaNaSpravi s in Raspored) { if (s.Uloga == uloga) { s.Sudija = sudija; return; } } }
CheckBox createCheckBox(SudijskaUloga uloga, Point location, int tabIndex, bool check) { CheckBox result = new CheckBox(); result.AutoSize = true; result.Location = location; result.TabIndex = tabIndex; result.Text = SudijskeUloge.toString(uloga); result.UseVisualStyleBackColor = true; result.Tag = uloga; result.Checked = check; result.CheckedChanged += new EventHandler(ckb_CheckedChanged); return(result); }
public virtual void addSudija(SudijaUcesnik sudija, SudijskaUloga uloga) { if (!hasFunction(uloga)) { throw new BusinessException(String.Format( "Funkcija {0} nije dozvoljena.", SudijskeUloge.toString(uloga))); } if (getSudija(uloga) != null) { throw new BusinessException(String.Format( "Vec postoji sudija sa funkcijom {0}.", SudijskeUloge.toString(uloga))); } /*if (sudijaExists(sudija)) * throw new BusinessException( * String.Format("Sudija {0} je vec clan sudijskog odbora.", sudija));*/ doAddSudija(sudija, uloga); }
public static string toString(SudijskaUloga uloga) { switch (uloga) { case SudijskaUloga.D1: return("D1"); case SudijskaUloga.D2: return("D2"); case SudijskaUloga.D1_E1: return("D1-E1"); case SudijskaUloga.D2_E2: return("D2-E2"); case SudijskaUloga.E1: return("E1"); case SudijskaUloga.E2: return("E2"); case SudijskaUloga.E3: return("E3"); case SudijskaUloga.E4: return("E4"); case SudijskaUloga.E5: return("E5"); case SudijskaUloga.E6: return("E6"); case SudijskaUloga.Undefined: return("Nepoznata sudijska funkcija"); default: throw new ArgumentException("Nedozvoljena vrednost za sudijsku funkciju."); } }
public virtual bool removeSudija(SudijskaUloga uloga) { if (Sudije.Remove((byte)uloga)) { removeSudijaFromRaspored(uloga); return true; } return false; }
public virtual bool hasFunction(SudijskaUloga uloga) { return SupportedUloge.IndexOf(uloga) >= 0; }
public virtual void addSudija(SudijaUcesnik sudija, SudijskaUloga uloga) { if (!hasFunction(uloga)) throw new BusinessException(String.Format( "Funkcija {0} nije dozvoljena.", SudijskeUloge.toString(uloga))); if (getSudija(uloga) != null) throw new BusinessException(String.Format( "Vec postoji sudija sa funkcijom {0}.", SudijskeUloge.toString(uloga))); /*if (sudijaExists(sudija)) throw new BusinessException( String.Format("Sudija {0} je vec clan sudijskog odbora.", sudija));*/ doAddSudija(sudija, uloga); }
private bool validate() { if (isChecked(SudijskaUloga.D1) && isChecked(SudijskaUloga.D1_E1)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog D1 sudiju.", this.Text); return false; } if (isChecked(SudijskaUloga.D2) && isChecked(SudijskaUloga.D2_E2)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog D2 sudiju.", this.Text); return false; } if (isChecked(SudijskaUloga.E1) && isChecked(SudijskaUloga.D1_E1)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog E1 sudiju.", this.Text); return false; } if (isChecked(SudijskaUloga.E2) && isChecked(SudijskaUloga.D2_E2)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog E2 sudiju.", this.Text); return false; } // Proveri da li je selektovan D2 a nije selektovan D1 if (!isChecked(SudijskaUloga.D1) && !isChecked(SudijskaUloga.D1_E1) && (isChecked(SudijskaUloga.D2) || isChecked(SudijskaUloga.D2_E2))) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne D sudije.", this.Text); return false; } // Proveri da li je selektovan E2 a nije selektovan E1 if (!isChecked(SudijskaUloga.E1) && !isChecked(SudijskaUloga.D1_E1) && (isChecked(SudijskaUloga.E2) || isChecked(SudijskaUloga.D2_E2))) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne E sudije.", this.Text); return false; } // Proveri da li je selektovan jedan od E3, E4, ..., a nije selektovan E1 ili E2 if (!isChecked(SudijskaUloga.E1) && !isChecked(SudijskaUloga.D1_E1) && !isChecked(SudijskaUloga.E2) && !isChecked(SudijskaUloga.D2_E2) && (isChecked(SudijskaUloga.E3) || isChecked(SudijskaUloga.E4) || isChecked(SudijskaUloga.E5) || isChecked(SudijskaUloga.E6))) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne E sudije.", this.Text); return false; } List<CheckBox> eSudije = new List<CheckBox>(); SudijskaUloga[] eUloge = new SudijskaUloga[] { SudijskaUloga.E3, SudijskaUloga.E4, SudijskaUloga.E5, SudijskaUloga.E6 }; foreach (SudijskaUloga uloga in eUloge) { if (getCheckBox(uloga) != null) eSudije.Add(getCheckBox(uloga)); } List<CheckBox> merVremena = new List<CheckBox>(); foreach (SudijskaUloga uloga in SudijskeUloge.meraciVremena()) { if (getCheckBox(uloga) != null) merVremena.Add(getCheckBox(uloga)); } List<CheckBox> linSudije = new List<CheckBox>(); foreach (SudijskaUloga uloga in SudijskeUloge.linijskeSudije()) { if (getCheckBox(uloga) != null) linSudije.Add(getCheckBox(uloga)); } if (!validateUzastopno(eSudije)) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne E sudije.", this.Text); return false; } else if (!validateUzastopno(merVremena)) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne merace vremena.", this.Text); return false; } else if (!validateUzastopno(linSudije)) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne linijske sudije.", this.Text); return false; } return true; }
public virtual bool hasFunction(SudijskaUloga uloga) { return(SupportedUloge.IndexOf(uloga) >= 0); }
public static bool isLinijskiSudija(SudijskaUloga uloga) { foreach (SudijskaUloga u in linijskeSudije()) { if (u == uloga) return true; } return false; }
private SudijaUcesnik getSudija(SudijskaUloga uloga) { if (Sudije.ContainsKey((byte)uloga)) return Sudije[(byte)uloga]; else return null; }
CheckBox createCheckBox(SudijskaUloga uloga, Point location, int tabIndex, bool check) { CheckBox result = new CheckBox(); result.AutoSize = true; result.Location = location; result.TabIndex = tabIndex; result.Text = SudijskeUloge.toString(uloga); result.UseVisualStyleBackColor = true; result.Tag = uloga; result.Checked = check; result.CheckedChanged += new EventHandler(ckb_CheckedChanged); return result; }
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);*/ }
public static string toString(SudijskaUloga uloga) { switch (uloga) { case SudijskaUloga.PredsednikGlavnogSudijskogOdbora: return "Predsednik glavnog sudijskog odbora"; case SudijskaUloga.ClanGlavnogSudijskogOdbora: return "Clan glavnog sudijskog odbora"; case SudijskaUloga.ParterKontrolor: return "Kontrolor na parteru"; case SudijskaUloga.KonjKontrolor: return "Kontrolor na konju sa hvataljkama"; case SudijskaUloga.KarikeKontrolor: return "Kontrolor na karikama"; case SudijskaUloga.PreskokKontrolor: return "Kontrolor na preskoku"; case SudijskaUloga.RazbojKontrolor: return "Kontrolor na razboju"; case SudijskaUloga.VratiloKontrolor: return "Kontrolor na vratilu"; case SudijskaUloga.DvovisinskiRazbojKontrolor: return "Kontrolor na dvovisinskom razboju"; case SudijskaUloga.GredaKontrolor: return "Kontrolor na gredi"; case SudijskaUloga.D1: return "D1"; case SudijskaUloga.D2: return "D2"; case SudijskaUloga.D1_E1: return "D1-E1"; case SudijskaUloga.D2_E2: return "D2-E2"; case SudijskaUloga.E1: return "E1"; case SudijskaUloga.E2: return "E2"; case SudijskaUloga.E3: return "E3"; case SudijskaUloga.E4: return "E4"; case SudijskaUloga.E5: return "E5"; case SudijskaUloga.E6: return "E6"; case SudijskaUloga.MeracVremena1: return "Merac vremena 1"; case SudijskaUloga.MeracVremena2: return "Merac vremena 2"; case SudijskaUloga.LinijskiSudija1: return "Linijski sudija 1"; case SudijskaUloga.LinijskiSudija2: return "Linijski sudija 2"; case SudijskaUloga.LinijskiSudija3: return "Linijski sudija 3"; case SudijskaUloga.LinijskiSudija4: return "Linijski sudija 4"; case SudijskaUloga.Undefined: return "Nepoznata sudijska funkcija"; default: throw new ArgumentException("Nedozvoljena vrednost za sudijsku funkciju."); } }
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); } }
public static string toString(SudijskaUloga uloga) { switch (uloga) { case SudijskaUloga.PredsednikGlavnogSudijskogOdbora: return("Predsednik glavnog sudijskog odbora"); case SudijskaUloga.ClanGlavnogSudijskogOdbora: return("Clan glavnog sudijskog odbora"); case SudijskaUloga.ParterKontrolor: return("Kontrolor na parteru"); case SudijskaUloga.KonjKontrolor: return("Kontrolor na konju sa hvataljkama"); case SudijskaUloga.KarikeKontrolor: return("Kontrolor na karikama"); case SudijskaUloga.PreskokKontrolor: return("Kontrolor na preskoku"); case SudijskaUloga.RazbojKontrolor: return("Kontrolor na razboju"); case SudijskaUloga.VratiloKontrolor: return("Kontrolor na vratilu"); case SudijskaUloga.DvovisinskiRazbojKontrolor: return("Kontrolor na dvovisinskom razboju"); case SudijskaUloga.GredaKontrolor: return("Kontrolor na gredi"); case SudijskaUloga.D1: return("D1"); case SudijskaUloga.D2: return("D2"); case SudijskaUloga.D1_E1: return("D1-E1"); case SudijskaUloga.D2_E2: return("D2-E2"); case SudijskaUloga.E1: return("E1"); case SudijskaUloga.E2: return("E2"); case SudijskaUloga.E3: return("E3"); case SudijskaUloga.E4: return("E4"); case SudijskaUloga.E5: return("E5"); case SudijskaUloga.E6: return("E6"); case SudijskaUloga.MeracVremena1: return("Merac vremena 1"); case SudijskaUloga.MeracVremena2: return("Merac vremena 2"); case SudijskaUloga.LinijskiSudija1: return("Linijski sudija 1"); case SudijskaUloga.LinijskiSudija2: return("Linijski sudija 2"); case SudijskaUloga.LinijskiSudija3: return("Linijski sudija 3"); case SudijskaUloga.LinijskiSudija4: return("Linijski sudija 4"); case SudijskaUloga.Undefined: return("Nepoznata sudijska funkcija"); default: throw new ArgumentException("Nedozvoljena vrednost za sudijsku funkciju."); } }
private bool isChecked(SudijskaUloga uloga) { CheckBox ckb = getCheckBox(uloga); return(ckb != null && ckb.Checked); }
private void addToRaspored(SudijaUcesnik sudija, SudijskaUloga uloga) { // bitno je da se koristi svojstvo Raspored a ne polje raspored zato sto // se Raspored lazy inicijalizuje foreach (SudijaNaSpravi s in Raspored) { if (s.Uloga == uloga) { s.Sudija = sudija; return; } } }
private CheckBox getCheckBox(SudijskaUloga uloga) { foreach (Control c in this.Controls) { CheckBox ckb = c as CheckBox; if (ckb != null && ((SudijskaUloga)ckb.Tag == uloga)) return ckb; } return null; }
private void doAddSudija(SudijaUcesnik sudija, SudijskaUloga uloga) { // NOTE: Bitno je da se koristi svojstvo Sudije a ne polje sudije // zbog lazy inicijalizacije Sudije.Add((byte)uloga, sudija); addToRaspored(sudija, uloga); }
private bool isChecked(SudijskaUloga uloga) { CheckBox ckb = getCheckBox(uloga); return ckb != null && ckb.Checked; }
private void removeSudijaFromRaspored(SudijskaUloga uloga) { foreach (SudijaNaSpravi s in this.Raspored) { if (s.Uloga == uloga) { s.Sudija = null; return; } } }
private void setChecked(SudijskaUloga uloga, bool value) { CheckBox ckb = getCheckBox(uloga); if (ckb != null) ckb.Checked = value; }
public static bool isMeracVremena(SudijskaUloga uloga) { foreach (SudijskaUloga u in meraciVremena()) { if (u == uloga) return true; } return false; }
private bool validate() { if (isChecked(SudijskaUloga.D1) && isChecked(SudijskaUloga.D1_E1)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog D1 sudiju.", this.Text); return(false); } if (isChecked(SudijskaUloga.D2) && isChecked(SudijskaUloga.D2_E2)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog D2 sudiju.", this.Text); return(false); } if (isChecked(SudijskaUloga.E1) && isChecked(SudijskaUloga.D1_E1)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog E1 sudiju.", this.Text); return(false); } if (isChecked(SudijskaUloga.E2) && isChecked(SudijskaUloga.D2_E2)) { MessageDialogs.showMessage( "Moguce je selektovati samo jednog E2 sudiju.", this.Text); return(false); } // Proveri da li je selektovan D2 a nije selektovan D1 if (!isChecked(SudijskaUloga.D1) && !isChecked(SudijskaUloga.D1_E1) && (isChecked(SudijskaUloga.D2) || isChecked(SudijskaUloga.D2_E2))) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne D sudije.", this.Text); return(false); } // Proveri da li je selektovan E2 a nije selektovan E1 if (!isChecked(SudijskaUloga.E1) && !isChecked(SudijskaUloga.D1_E1) && (isChecked(SudijskaUloga.E2) || isChecked(SudijskaUloga.D2_E2))) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne E sudije.", this.Text); return(false); } // Proveri da li je selektovan jedan od E3, E4, ..., a nije selektovan E1 ili E2 if (!isChecked(SudijskaUloga.E1) && !isChecked(SudijskaUloga.D1_E1) && !isChecked(SudijskaUloga.E2) && !isChecked(SudijskaUloga.D2_E2) && (isChecked(SudijskaUloga.E3) || isChecked(SudijskaUloga.E4) || isChecked(SudijskaUloga.E5) || isChecked(SudijskaUloga.E6))) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne E sudije.", this.Text); return(false); } List <CheckBox> eSudije = new List <CheckBox>(); SudijskaUloga[] eUloge = new SudijskaUloga[] { SudijskaUloga.E3, SudijskaUloga.E4, SudijskaUloga.E5, SudijskaUloga.E6 }; foreach (SudijskaUloga uloga in eUloge) { if (getCheckBox(uloga) != null) { eSudije.Add(getCheckBox(uloga)); } } if (!validateUzastopno(eSudije)) { MessageDialogs.showMessage( "Moguce je selektovati samo uzastopne E sudije.", this.Text); return(false); } return(true); }
public SudijaNaSpravi(SudijskaUloga uloga, SudijaUcesnik sudija) { this.uloga = uloga; this.sudija = sudija; }
public SudijaNaSpravi(SudijskaUloga uloga, SudijaUcesnik sudija) { this.uloga = uloga; this.sudija = sudija; }