예제 #1
0
        protected override void checkBusinessRulesOnUpdate(DomainObject entity)
        {
            GimnasticarUcesnik g = (GimnasticarUcesnik)entity;

            if (!hasImeSrednjeImePrezimeDatumRodjenjaChanged(g))
            {
                return;
            }

            GimnasticarDAO gimnasticarDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarDAO();

            if (gimnasticarDAO.existsGimnasticarImePrezimeSrednjeImeDatumRodjenja(oldIme, oldPrezime, oldSrednjeIme,
                                                                                  oldDatumRodjenja))
            {
                if (!gimnasticarDAO.existsGimnasticarImePrezimeSrednjeImeDatumRodjenja(g.Ime, g.Prezime, g.SrednjeIme,
                                                                                       g.DatumRodjenja))
                {
                    // Staro ime postoji u registru, novo ime ne postoji u registru.
                    // Menjaj staro ime u registru sa novim
                    Gimnasticar gim = gimnasticarDAO.FindGimnasticar(oldIme, oldPrezime,
                                                                     oldDatumRodjenja.Dan, oldDatumRodjenja.Mesec, oldDatumRodjenja.Godina, gimnastika);
                    if (gim != null)
                    {
                        gim.Ime           = g.Ime;
                        gim.Prezime       = g.Prezime;
                        gim.SrednjeIme    = g.SrednjeIme;
                        gim.DatumRodjenja = g.DatumRodjenja;
                        gimnasticarDAO.Update(gim);
                    }
                    else
                    {
                        throw new BusinessException("Greska u programu");
                    }
                }
                else
                {
                    // Staro ime postoji u registru, novo ime postoji u registru.
                    // TODO4: Ne menjaj nista u registru; trazi potvrdu za nastavak
                    throw new BusinessException("Greska u programu - neuspesna promena imena gimnasticara2");
                }
            }
            else
            {
                if (!gimnasticarDAO.existsGimnasticarImePrezimeSrednjeImeDatumRodjenja(g.Ime, g.Prezime, g.SrednjeIme,
                                                                                       g.DatumRodjenja))
                {
                    // Staro ime ne postoji u registru, novo ime ne postoji u registru.
                    // TODO4: Dodaj novog gimnasticara u registru sa novim imenom
                    throw new BusinessException("Greska u programu - neuspesna promena imena gimnasticara3");
                }
                else
                {
                    // Staro ime ne postoji u registru, novo ime postoji u registru.
                    // TODO4: Ne menjaj nista u registru; trazi potvrdu za nastavak
                    throw new BusinessException("Greska u programu - neuspesna promena imena gimnasticara4");
                }
            }
        }
예제 #2
0
        protected override void checkBusinessRulesOnUpdate(DomainObject entity)
        {
            Gimnasticar    g              = (Gimnasticar)entity;
            Notification   notification   = new Notification();
            GimnasticarDAO gimnasticarDAO = DAOFactoryFactory.DAOFactory.GetGimnasticarDAO();

            if (hasImeSrednjeImePrezimeDatumRodjenjaChanged(g) &&
                gimnasticarDAO.existsGimnasticarImePrezimeSrednjeImeDatumRodjenja(g.Ime, g.Prezime, g.SrednjeIme,
                                                                                  g.DatumRodjenja))
            {
                notification.RegisterMessage("Ime",
                                             "Gimnasticar sa datim imenom, prezimenom i datumom rodjenja vec postoji.");
                throw new BusinessException(notification);
            }

            bool regBrojChanged = (g.RegistarskiBroj != oldRegBroj) ? true : false;

            if (regBrojChanged && !String.IsNullOrEmpty(g.RegistarskiBroj) &&
                gimnasticarDAO.existsGimnasticarRegBroj(g.RegistarskiBroj))
            {
                notification.RegisterMessage("RegistarskiBroj",
                                             "Gimnasticar sa datim registarskim brojem vec postoji.");
                throw new BusinessException(notification);
            }
        }
예제 #3
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();
            }
        }