private void insertOcene(Takmicenje takmicenje) { TakmicarskaKategorija seniori = DAOFactoryFactory.DAOFactory.GetTakmicarskaKategorijaDAO() .FindByTakmicenje(takmicenje.Id)[0]; IList <GimnasticarUcesnik> gimnasticari = DAOFactoryFactory.DAOFactory.GetGimnasticarUcesnikDAO() .FindByTakmicenje(takmicenje.Id); Dictionary <int, GimnasticarUcesnik> gimnasticariMap = new Dictionary <int, GimnasticarUcesnik>(); //foreach (GimnasticarUcesnik g in gimnasticari) // gimnasticariMap.Add(g.TakmicarskiBroj.Value, g); DeoTakmicenjaKod[] deoTakmicenja = { DeoTakmicenjaKod.Takmicenje1, DeoTakmicenjaKod.Takmicenje2, DeoTakmicenjaKod.Takmicenje3 }; string[] fileNames; if (gimnastika == Gimnastika.MSG) { fileNames = new string[] { @"..\..\test\Data\OceneKvalifikacijeMuskarci.txt", @"..\..\test\Data\OceneVisebojMuskarci.txt", @"..\..\test\Data\OceneSpraveMuskarci.txt" } } ; else { fileNames = new string[] { @"..\..\test\Data\OceneKvalifikacijeZene.txt", @"..\..\test\Data\OceneVisebojZene.txt", @"..\..\test\Data\OceneSpraveZene.txt" } }; for (int i = 0; i < deoTakmicenja.Length; i++) { List <Ocena> ocene = new List <Ocena>(); OceneParser parser = new OceneParser(gimnasticariMap); parser.parse(fileNames[i]); TakmicarskaKategorija kategorija = seniori; int rank; int broj = 0; Ocena ocena = null; foreach (object[] o in parser.Ocene) { Sprava sprava = Sprave.parse((string)o[0]); if ((string)o[1] != "") { rank = Convert.ToInt32(o[1]); } if ((string)o[2] != "") { broj = Convert.ToInt32(o[2]); } Nullable <byte> brojPreskoka = null; if ((string)o[3] != "") { brojPreskoka = Convert.ToByte(o[3]); } Nullable <short> vreme = null; if ((string)o[4] != "") { vreme = parseMinutSecond((string)o[4]); } float D = Convert.ToSingle(replaceDelimiter(o[5])); float E1 = Convert.ToSingle(replaceDelimiter(o[6])); float E2 = Convert.ToSingle(replaceDelimiter(o[7])); float E3 = Convert.ToSingle(replaceDelimiter(o[8])); float E4 = Convert.ToSingle(replaceDelimiter(o[9])); float E5 = Convert.ToSingle(replaceDelimiter(o[10])); float E6 = Convert.ToSingle(replaceDelimiter(o[11])); float E = Convert.ToSingle(replaceDelimiter(o[12])); Nullable <float> pen = null; if ((string)o[13] != "") { pen = Convert.ToSingle(replaceDelimiter(o[13])); } Nullable <float> L = null; if ((string)o[14] != "") { L = Convert.ToSingle(replaceDelimiter(o[14])); } Nullable <float> T = null; if ((string)o[15] != "") { T = Convert.ToSingle(replaceDelimiter(o[15])); } Nullable <float> O = null; if ((string)o[16] != "") { O = Convert.ToSingle(replaceDelimiter(o[16])); } Nullable <float> ocenaPreskok = null; if ((string)o[17] != "") { ocenaPreskok = Convert.ToSingle(replaceDelimiter(o[17])); } Nullable <float> total = null; if ((string)o[18] != "") { total = Convert.ToSingle(replaceDelimiter(o[18])); } if (sprava != Sprava.Preskok || brojPreskoka != 2) { ocena = new Ocena(); ocena.Sprava = sprava; ocena.DeoTakmicenjaKod = deoTakmicenja[i]; //ocena.VremeVezbe = vreme; ocena.D = D; ocena.E1 = E1; ocena.E2 = E2; ocena.E3 = E3; ocena.E4 = E4; ocena.E5 = E5; ocena.E6 = E6; ocena.E = E; ocena.Penalty = pen; //ocena.LinePenalty = L; //ocena.TimePenalty = T; //ocena.OtherPenalty = O; if (sprava != Sprava.Preskok || deoTakmicenja[i] == DeoTakmicenjaKod.Takmicenje2) { // za finale viseboja postoji samo jedna ocena preskoka ocena.Total = total; } else { ocena.Total = ocenaPreskok; } ocena.BrojEOcena = 6; ocena.RucnoUnetaOcena = false; GimnasticarUcesnik gimnasticar = gimnasticariMap[broj]; if (gimnasticar == null) { throw new Exception("Greska prilikom dodavanja rasporeda sudija."); } ocena.Gimnasticar = gimnasticar; ocene.Add(ocena); } else { DrugaOcena ocena2 = new DrugaOcena(); ocena2.D = D; ocena2.E1 = E1; ocena2.E2 = E2; ocena2.E3 = E3; ocena2.E4 = E4; ocena2.E5 = E5; ocena2.E6 = E6; ocena2.E = E; ocena2.Penalty = pen; //ocena2.LinePenalty = L; //ocena2.OtherPenalty = O; ocena2.Total = ocenaPreskok; ocena2.BrojEOcena = 6; ocena2.RucnoUnetaOcena = false; ocena.Ocena2 = ocena2; ocena.TotalObeOcene = ocena.getTotalObeOcene(takmicenje.BrojDecimalaTotal); } } /* dataContext.Evict(takmicenje); * foreach (GimnasticarUcesnik g in gimnasticari) * dataContext.Evict(g); * dataContext.Evict(seniori); */ foreach (Ocena o in ocene) { DAOFactoryFactory.DAOFactory.GetOcenaDAO().Add(o); } } }
private void insertOcene() { Takmicenje takmicenje = loadTakmicenje("Milano"); TakmicarskaKategorija seniori = loadKategorija(takmicenje); Query q = new Query(); q.Criteria.Add( new Criterion("Takmicenje", CriteriaOperator.Equal, takmicenje)); q.FetchModes.Add(new AssociationFetch( "DrzavaUcesnik", AssociationFetchMode.Eager)); IList<GimnasticarUcesnik> gimnasticari = dataContext.GetByCriteria<GimnasticarUcesnik>(q); Dictionary<int, GimnasticarUcesnik> gimnasticariMap = new Dictionary<int, GimnasticarUcesnik>(); foreach (GimnasticarUcesnik g in gimnasticari) gimnasticariMap.Add(g.TakmicarskiBroj.Value, g); DeoTakmicenjaKod[] deoTakmicenja = { DeoTakmicenjaKod.Takmicenje1, DeoTakmicenjaKod.Takmicenje2, DeoTakmicenjaKod.Takmicenje3 }; string[] fileNames; if (gimnastika == Gimnastika.MSG) fileNames = new string[] { @"..\..\test\Data\OceneKvalifikacijeMuskarci.txt", @"..\..\test\Data\OceneVisebojMuskarci.txt", @"..\..\test\Data\OceneSpraveMuskarci.txt" }; else fileNames = new string[] { @"..\..\test\Data\OceneKvalifikacijeZene.txt", @"..\..\test\Data\OceneVisebojZene.txt", @"..\..\test\Data\OceneSpraveZene.txt" }; for (int i = 0; i < deoTakmicenja.Length; i++) { List<Ocena> ocene = new List<Ocena>(); OceneParser parser = new OceneParser(gimnasticariMap); parser.parse(fileNames[i]); TakmicarskaKategorija kategorija = seniori; int rank; int broj = 0; Ocena ocena = null; foreach (object[] o in parser.Ocene) { Sprava sprava = Sprave.parse((string)o[0]); if ((string)o[1] != "") rank = Convert.ToInt32(o[1]); if ((string)o[2] != "") broj = Convert.ToInt32(o[2]); Nullable<byte> brojPreskoka = null; if ((string)o[3] != "") brojPreskoka = Convert.ToByte(o[3]); Nullable<short> vreme = null; if ((string)o[4] != "") vreme = parseMinutSecond((string)o[4]); float D = Convert.ToSingle(replaceDelimiter(o[5])); float E1 = Convert.ToSingle(replaceDelimiter(o[6])); float E2 = Convert.ToSingle(replaceDelimiter(o[7])); float E3 = Convert.ToSingle(replaceDelimiter(o[8])); float E4 = Convert.ToSingle(replaceDelimiter(o[9])); float E5 = Convert.ToSingle(replaceDelimiter(o[10])); float E6 = Convert.ToSingle(replaceDelimiter(o[11])); float E = Convert.ToSingle(replaceDelimiter(o[12])); Nullable<float> pen = null; if ((string)o[13] != "") pen = Convert.ToSingle(replaceDelimiter(o[13])); Nullable<float> L = null; if ((string)o[14] != "") { L = Convert.ToSingle(replaceDelimiter(o[14])); } Nullable<float> T = null; if ((string)o[15] != "") T = Convert.ToSingle(replaceDelimiter(o[15])); Nullable<float> O = null; if ((string)o[16] != "") O = Convert.ToSingle(replaceDelimiter(o[16])); Nullable<float> ocenaPreskok = null; if ((string)o[17] != "") ocenaPreskok = Convert.ToSingle(replaceDelimiter(o[17])); Nullable<float> total = null; if ((string)o[18] != "") total = Convert.ToSingle(replaceDelimiter(o[18])); if (sprava != Sprava.Preskok || brojPreskoka != 2) { ocena = new Ocena(); ocena.Sprava = sprava; ocena.DeoTakmicenjaKod = deoTakmicenja[i]; ocena.VremeVezbe = vreme; ocena.D = D; ocena.E1 = E1; ocena.E2 = E2; ocena.E3 = E3; ocena.E4 = E4; ocena.E5 = E5; ocena.E6 = E6; ocena.E = E; ocena.Penalty = pen; ocena.LinePenalty = L; ocena.TimePenalty = T; ocena.OtherPenalty = O; if (sprava != Sprava.Preskok || deoTakmicenja[i] == DeoTakmicenjaKod.Takmicenje2) { // za finale viseboja postoji samo jedna ocena preskoka ocena.Total = total; } else ocena.Total = ocenaPreskok; ocena.BrojEOcena = 6; ocena.RucnoUnetaOcena = false; GimnasticarUcesnik gimnasticar = gimnasticariMap[broj]; if (gimnasticar == null) throw new Exception("Greska prilikom dodavanja rasporeda sudija."); ocena.Gimnasticar = gimnasticar; ocene.Add(ocena); } else { DrugaOcena ocena2 = new DrugaOcena(); ocena2.D = D; ocena2.E1 = E1; ocena2.E2 = E2; ocena2.E3 = E3; ocena2.E4 = E4; ocena2.E5 = E5; ocena2.E6 = E6; ocena2.E = E; ocena2.Penalty = pen; ocena2.LinePenalty = L; ocena2.OtherPenalty = O; ocena2.Total = ocenaPreskok; ocena2.BrojEOcena = 6; ocena2.RucnoUnetaOcena = false; ocena.Ocena2 = ocena2; ocena.TotalObeOcene = ocena.getTotalObeOcene(takmicenje.BrojDecimalaTotal); } } /* dataContext.Evict(takmicenje); foreach (GimnasticarUcesnik g in gimnasticari) dataContext.Evict(g); dataContext.Evict(seniori); */ foreach (Ocena o in ocene) { dataContext.Add(o); } } }