Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }