예제 #1
0
        void btnUveziIzBiltena_Click(object sender, EventArgs e)
        {
            if (Opcije.Instance.BiltenConnectionString == null)
            {
                MessageDialogs.showMessage("Pronadjite folder za bilten i selektujte fajl 'BiltenPodaci.sdf'.", "Registracija");
                OpenFileDialog ofd = new OpenFileDialog();
                if (ofd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                Opcije.Instance.BiltenConnectionString = String.Format(@"Data Source={0}", ofd.FileName);
            }

            SelectGimnasticarBiltenForm form = new SelectGimnasticarBiltenForm();

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            IList <Gimnasticar> noviGimnasticari = new List <Gimnasticar>();

            Cursor.Current = Cursors.WaitCursor;
            Cursor.Show();
            bool     ok      = false;
            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        GimnasticarDAO gimDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarDAO();

                        KlubDAO klubDAO = DAOFactoryFactory.DAOFactory.GetKlubDAO();
                        KategorijaGimnasticaraDAO katDAO = DAOFactoryFactory.DAOFactory.GetKategorijaGimnasticaraDAO();

                        IDictionary <Klub, Klub> klubovi = new Dictionary <Klub, Klub>();
                        foreach (Klub k in klubDAO.FindAll())
                        {
                            klubovi.Add(k, k);
                        }
                        IDictionary <KategorijaGimnasticara, KategorijaGimnasticara> kategorije
                            = new Dictionary <KategorijaGimnasticara, KategorijaGimnasticara>();
                        foreach (KategorijaGimnasticara kat in katDAO.FindAll())
                        {
                            kategorije.Add(kat, kat);
                        }

                        foreach (GimnasticarBilten g in form.SelektovaniGimnasticari)
                        {
                            if (!gimDAO.existsGimnasticarImePrezimeSrednjeImeDatumRodjenja(g.Ime, g.Prezime, g.SrednjeIme,
                                                                                           g.DatumRodjenja))
                            {
                                Gimnasticar gim = createGimnasticar(g, klubDAO, katDAO, klubovi, kategorije);
                                noviGimnasticari.Add(gim);
                                gimDAO.Add(gim);
                            }
                        }

                        session.Transaction.Commit();
                        ok = true;
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                throw new InfrastructureException(ex.Message, ex);
            }
            finally
            {
                Cursor.Hide();
                Cursor.Current = Cursors.Arrow;
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            if (ok)
            {
                List <Gimnasticar> items = dataGridViewUserControl1.getItems <Gimnasticar>();
                foreach (Gimnasticar g in noviGimnasticari)
                {
                    items.Add(g);
                }
                dataGridViewUserControl1.setItems <Gimnasticar>(items);
                dataGridViewUserControl1.clearSelection();
                updateEntityCount();
            }
        }
예제 #2
0
        private void insertRegistrovaniGimnasticari()
        {
            RegistrovaniGimnasticariParser parser = new RegistrovaniGimnasticariParser();
            string fileName = @"..\..\test\Data\RegistracijaTakmicara2009.txt";

            parser.parse(fileName);

            GimnasticarDAO      gimnasticarDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarDAO();
            IList <Gimnasticar> gimnasticari   = gimnasticarDAO.FindAll();
            IList <Klub>        klubovi        = DAOFactoryFactory.DAOFactory.GetKlubDAO().FindAll();
            Drzava srbija = DAOFactoryFactory.DAOFactory.GetDrzavaDAO().FindByKod("SRB");

            foreach (object[] o in parser.Gimnasticari)
            {
                char   pol       = (char)o[0];
                string ime       = (string)o[1];
                string prezime   = (string)o[2];
                string datumRodj = (string)o[3];
                string klubMesto = (string)o[4];
                string regBroj   = (string)o[5];
                string datumReg  = (string)o[6];

                Gimnasticar gimnasticar = findGimnasticar(ime, prezime, gimnasticari);
                if (gimnasticar != null)
                {
                    if (datumRodj.Trim() == "NULL")
                    {
                        gimnasticar.DatumRodjenja = null;
                    }
                    else
                    {
                        gimnasticar.DatumRodjenja = Datum.Parse(datumRodj);
                    }
                    gimnasticar.RegistarskiBroj = regBroj;
                    if (datumReg.Trim() == String.Empty)
                    {
                        gimnasticar.DatumPoslednjeRegistracije = null;
                    }
                    else
                    {
                        gimnasticar.DatumPoslednjeRegistracije = Datum.Parse(datumReg);
                    }
                    gimnasticar.Klub = findKlub(klubMesto, klubovi);

                    gimnasticarDAO.Update(gimnasticar);
                }
                else
                {
                    gimnasticar = new Gimnasticar();
                    if (pol == 'M')
                    {
                        gimnasticar.Gimnastika = Gimnastika.MSG;
                    }
                    else if (pol == 'Z')
                    {
                        gimnasticar.Gimnastika = Gimnastika.ZSG;
                    }
                    else if (pol == ' ')
                    {
                        gimnasticar.Gimnastika = Gimnastika.Undefined;
                    }
                    else
                    {
                        throw new FormatException("Invalid format in file " + fileName);
                    }

                    gimnasticar.Ime     = ime.Trim();
                    gimnasticar.Prezime = prezime.Trim();
                    if (datumRodj.Trim() == "NULL")
                    {
                        gimnasticar.DatumRodjenja = null;
                    }
                    else
                    {
                        gimnasticar.DatumRodjenja = Datum.Parse(datumRodj);
                    }
                    gimnasticar.RegistarskiBroj = regBroj;
                    if (datumReg.Trim() == String.Empty)
                    {
                        gimnasticar.DatumPoslednjeRegistracije = null;
                    }
                    else
                    {
                        gimnasticar.DatumPoslednjeRegistracije = Datum.Parse(datumReg);
                    }

                    gimnasticar.Klub   = findKlub(klubMesto, klubovi);
                    gimnasticar.Drzava = srbija;

                    gimnasticarDAO.Add(gimnasticar);
                }
            }
        }