Ejemplo n.º 1
0
        private void promeniKvalStatus(KvalifikacioniStatus kvalStatus)
        {
            RezultatUkupno rez = dataGridViewUserControl1.getSelectedItem <RezultatUkupno>();

            if (rez == null || rez.KvalStatus == kvalStatus)
            {
                return;
            }

            string msg = String.Empty;

            if (kvalStatus != KvalifikacioniStatus.None)
            {
                string msgFmt = "Da li zelite da oznacite sa \"{1}\" gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, kvalStatus);
            }
            else
            {
                string msgFmt = "Da li zelite da ponistite oznaku \"{1}\" za gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, rez.KvalStatus);
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
            {
                return;
            }

            ISession session = null;

            try
            {
                using (session = NHibernateHelper.Instance.OpenSession())
                    using (session.BeginTransaction())
                    {
                        CurrentSessionContext.Bind(session);
                        rez.KvalStatus = kvalStatus;
                        DAOFactoryFactory.DAOFactory.GetPoredakUkupnoDAO().Update(ActiveTakmicenje.getPoredakUkupno(deoTakKod));

                        takmicenje = DAOFactoryFactory.DAOFactory.GetTakmicenjeDAO().FindById(takmicenje.Id);
                        takmicenje.LastModified = DateTime.Now;
                        session.Transaction.Commit();
                    }
            }
            catch (Exception ex)
            {
                if (session != null && session.Transaction != null && session.Transaction.IsActive)
                {
                    session.Transaction.Rollback();
                }
                MessageDialogs.showError(ex.Message, this.Text);
                Close();
                return;
            }
            finally
            {
                CurrentSessionContext.Unbind(NHibernateHelper.Instance.SessionFactory);
            }

            dataGridViewUserControl1.refreshItems();
            dataGridViewUserControl1.setSelectedItem <RezultatUkupno>(rez);
        }
Ejemplo n.º 2
0
 protected UcesnikFinala(Nullable <short> qualOrder, Nullable <float> qualScore,
                         Nullable <short> qualRank, KvalifikacioniStatus kvalStatus)
 {
     _qualOrder  = qualOrder;
     _qualScore  = qualScore;
     _qualRank   = qualRank;
     _kvalStatus = kvalStatus;
 }
Ejemplo n.º 3
0
 public UcesnikTakmicenja3(GimnasticarUcesnik gimnasticar, Sprava sprava,
                           Nullable <short> qualOrder, Nullable <float> qualScore,
                           Nullable <short> qualRank, KvalifikacioniStatus kvalStatus)
     : base(qualOrder, qualScore, qualRank, kvalStatus)
 {
     _gimnasticar = gimnasticar;
     _sprava      = sprava;
 }
Ejemplo n.º 4
0
 protected UcesnikFinala(Nullable<short> qualOrder, Nullable<float> qualScore,
     Nullable<short> qualRank, KvalifikacioniStatus kvalStatus)
 {
     _qualOrder = qualOrder;
     _qualScore = qualScore;
     _qualRank = qualRank;
     _kvalStatus = kvalStatus;
 }
Ejemplo n.º 5
0
 public UcesnikTakmicenja3(GimnasticarUcesnik gimnasticar, Sprava sprava,
     Nullable<short> qualOrder, Nullable<float> qualScore,
     Nullable<short> qualRank, KvalifikacioniStatus kvalStatus)
     : base(qualOrder, qualScore, qualRank, kvalStatus)
 {
     _gimnasticar = gimnasticar;
     _sprava = sprava;
 }
Ejemplo n.º 6
0
        //private string sqlGetId = "SELECT @@IDENTITY";
        public void insert(GimnasticarUcesnik gimnasticar, RezultatskoTakmicenje rezTak,
            Sprava sprava, KvalifikacioniStatus newKvalStatus)
        {
            SqlCeConnection conn = new SqlCeConnection(ConfigurationParameters.ConnectionString);
            SqlCeCommand cmd = new SqlCeCommand(insertSQL, conn);

            cmd.Parameters.Add("@rez_takmicenje_id", SqlDbType.Int).Value = rezTak.Id;
            cmd.Parameters.Add("@gimnasticar_id", SqlDbType.Int).Value = gimnasticar.Id;
            cmd.Parameters.Add("@sprava", SqlDbType.TinyInt).Value = sprava;
            cmd.Parameters.Add("@kval_status", SqlDbType.TinyInt).Value = newKvalStatus;

            SqlCeTransaction tr = null;
            try
            {
                conn.Open();
                tr = conn.BeginTransaction();
                cmd.Transaction = tr;
                int recordsAffected = cmd.ExecuteNonQuery();
                if (recordsAffected != 1)
                {
                    throw new InfrastructureException(Strings.DatabaseAccessExceptionMessage);
                }

                /*SqlCeCommand cmd2 = new SqlCeCommand(sqlGetId, conn, tr);
                object id = cmd2.ExecuteScalar();
                if (!Convert.IsDBNull(id))
                    entity.Id = Convert.ToInt32(id);*/

                tr.Commit(); // TODO: this can throw Exception and InvalidOperationException
            }
            catch (SqlCeException ex)
            {
                // in Open()
                if (tr != null)
                    tr.Rollback(); // TODO: this can throw Exception and InvalidOperationException
                throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
            }
            catch (InvalidOperationException ex)
            {
                // in ExecuteNonQuery(), ExecureScalar()
                if (tr != null)
                    tr.Rollback();
                throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
            }
            // za svaki slucaj
            catch (Exception)
            {
                if (tr != null)
                    tr.Rollback();
                throw;
            }
            finally
            {
                conn.Close();
            }
        }
Ejemplo n.º 7
0
        public virtual void loadFromDump(StringReader reader)
        {
            string line = reader.ReadLine();

            QualOrder = line != NULL?short.Parse(line) : (short?)null;

            line      = reader.ReadLine();
            QualScore = line != NULL?float.Parse(line) : (float?)null;

            line     = reader.ReadLine();
            QualRank = line != NULL?short.Parse(line) : (short?)null;

            KvalStatus = (KvalifikacioniStatus)Enum.Parse(typeof(KvalifikacioniStatus), reader.ReadLine());
        }
Ejemplo n.º 8
0
        public virtual IList <UcesnikTakmicenja3> doGetUcesnici(Sprava sprava, KvalifikacioniStatus kvalStatus)
        {
            List <UcesnikTakmicenja3> result = new List <UcesnikTakmicenja3>();

            foreach (UcesnikTakmicenja3 u in Ucesnici)
            {
                if (u.Sprava == sprava && u.KvalStatus == kvalStatus)
                {
                    result.Add(u);
                }
            }
            PropertyDescriptor propDesc = TypeDescriptor.GetProperties(typeof(UcesnikTakmicenja3))["QualOrder"];

            result.Sort(new SortComparer <UcesnikTakmicenja3>(propDesc, ListSortDirection.Ascending));
            return(result);
        }
Ejemplo n.º 9
0
        public static string toString(KvalifikacioniStatus status)
        {
            switch (status)
            {
            case KvalifikacioniStatus.None:
                return(String.Empty);

            case KvalifikacioniStatus.Q:
                return("Q");

            case KvalifikacioniStatus.R:
                return("R");

            default:
                throw new ArgumentException("Nedozvoljena vrednost za kvalifikacioni status.");
            }
        }
Ejemplo n.º 10
0
        public static string toString(KvalifikacioniStatus status)
        {
            switch (status)
            {
                case KvalifikacioniStatus.None:
                    return String.Empty;

                case KvalifikacioniStatus.Q:
                    return "Q";

                case KvalifikacioniStatus.R:
                    return "R";

                default:
                    throw new ArgumentException("Nedozvoljena vrednost za kvalifikacioni status.");
            }
        }
        private void promeniKvalStatus(KvalifikacioniStatus kvalStatus)
        {
            RezultatSpravaFinaleKupa rez
                = spravaGridUserControl1.DataGridViewUserControl.getSelectedItem<RezultatSpravaFinaleKupa>();
            int selCount = spravaGridUserControl1.DataGridViewUserControl.getSelectedItems<RezultatSpravaFinaleKupa>().Count;
            if (selCount != 1 || rez.KvalStatus == kvalStatus)
                return;

            string msg = String.Empty;
            if (kvalStatus != KvalifikacioniStatus.None)
            {
                string msgFmt = "Da li zelite da oznacite sa \"{1}\" gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, kvalStatus);
            }
            else
            {
                string msgFmt = "Da li zelite da ponistite oznaku \"{1}\" za gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, rez.KvalStatus);
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
                return;

            // NOTE: Promena kval. statusa kod finala kupa namerno je implementirana da se cuva u posebnoj tabeli kao
            // update na postojece rezultate. Ako bih implementirao drugacije, tj. da se cuva u istoj tabeli gde su i rezultati,
            // tada bi se poredak snimio u bazu prilikom prvog otvaranja prozora, i ne bi se ponovo izracunavao prilikom
            // svakog sledeceg otvaranja prozora vec bi se ucitavao iz baze. U tom slucaju ne bih mogao da postignem da se
            // npr. promeni neki rezultat iz prvog i drugog kola i da ta promena automatski bude vidljiva kada se ponovo
            // otvori prozor za finale kupa.

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                insertRezultatSpravaFinaleKupaUpdate(rez.Gimnasticar, ActiveTakmicenje, ActiveSprava, kvalStatus);
                rez.KvalStatus = kvalStatus;
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            spravaGridUserControl1.DataGridViewUserControl.refreshItems();
            spravaGridUserControl1.DataGridViewUserControl.setSelectedItem<RezultatSpravaFinaleKupa>(rez);
        }
 private void insertRezultatSpravaFinaleKupaUpdate(GimnasticarUcesnik gimnasticar, RezultatskoTakmicenje rezTak,
     Sprava sprava, KvalifikacioniStatus newKvalStatus)
 {
     RezultatSpravaFinaleKupaDAO dao = new RezultatSpravaFinaleKupaDAO();
     if (!dao.postojiRezultatSpravaFinaleKupaUpdate(gimnasticar, rezTak, sprava))
         dao.insert(gimnasticar, rezTak, sprava, newKvalStatus);
     else
         dao.update(gimnasticar, rezTak, sprava, newKvalStatus);
 }
Ejemplo n.º 13
0
        private UcesnikTakmicenja3 addUcesnik(GimnasticarUcesnik gimnasticar, Sprava sprava,
                                              Nullable <float> qualScore, Nullable <short> qualRank, KvalifikacioniStatus kvalStatus, short qualOrder)
        {
            UcesnikTakmicenja3 u = new UcesnikTakmicenja3(gimnasticar, sprava, qualOrder, qualScore, qualRank, kvalStatus);

            Ucesnici.Add(u);
            return(u);
        }
Ejemplo n.º 14
0
        private void promeniKvalStatus(KvalifikacioniStatus kvalStatus)
        {
            RezultatUkupno rez = dataGridViewUserControl1.getSelectedItem<RezultatUkupno>();
            if (rez == null || rez.KvalStatus == kvalStatus)
                return;

            string msg = String.Empty;
            if (kvalStatus != KvalifikacioniStatus.None)
            {
                string msgFmt = "Da li zelite da oznacite sa \"{1}\" gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, kvalStatus);
            }
            else
            {
                string msgFmt = "Da li zelite da ponistite oznaku \"{1}\" za gimnasticara \"{0}\"?";
                msg = String.Format(msgFmt, rez.Gimnasticar, rez.KvalStatus);
            }
            if (!MessageDialogs.queryConfirmation(msg, this.Text))
                return;

            try
            {
                DataAccessProviderFactory factory = new DataAccessProviderFactory();
                dataContext = factory.GetDataContext();
                dataContext.BeginTransaction();

                rez.KvalStatus = kvalStatus;
                dataContext.Save(ActiveTakmicenje.getPoredakUkupno(deoTakKod));
                dataContext.Commit();
            }
            catch (Exception ex)
            {
                if (dataContext != null && dataContext.IsInTransaction)
                    dataContext.Rollback();
                MessageDialogs.showError(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
                Close();
                return;
            }
            finally
            {
                if (dataContext != null)
                    dataContext.Dispose();
                dataContext = null;
            }

            dataGridViewUserControl1.refreshItems();
            dataGridViewUserControl1.setSelectedItem<RezultatUkupno>(rez);
        }
Ejemplo n.º 15
0
        public void update(GimnasticarUcesnik gimnasticar, RezultatskoTakmicenje rezTak,
            Sprava sprava, KvalifikacioniStatus newKvalStatus)
        {
            SqlCeConnection conn = new SqlCeConnection(ConfigurationParameters.ConnectionString);
            SqlCeCommand cmd = new SqlCeCommand(updateSQL, conn);

            cmd.Parameters.Add("@rez_takmicenje_id", SqlDbType.Int).Value = rezTak.Id;
            cmd.Parameters.Add("@gimnasticar_id", SqlDbType.Int).Value = gimnasticar.Id;
            cmd.Parameters.Add("@sprava", SqlDbType.TinyInt).Value = sprava;
            cmd.Parameters.Add("@kval_status", SqlDbType.TinyInt).Value = newKvalStatus;

            SqlCeTransaction tr = null;
            try
            {
                conn.Open();
                tr = conn.BeginTransaction(); // zbog updateDependents, inace ne mora
                cmd.Transaction = tr;
                int recordsAffected = cmd.ExecuteNonQuery();
                if (recordsAffected != 1)
                {
                    // TODO: Ukoliko se radi optimistic offline lock, ova grana se
                    // ce se izvrsavati ako su podaci u bazi u medjuvremenu promenjeni,
                    // pa bi trebalo izbaciti izuzetak koji bi to signalizirao
                    // (npr. NHibernate ima izuzetak StaleObjectStateException).
                    // Generalno, i kod insert i kod update i kod delete bi
                    // slucajevi gde se komanda izvrsi bez problema ali se
                    // recordsAffected razlikuje od ocekivanog
                    // trebalo da se signaliziraju razlicitim tipom izuzetka

                    throw new InfrastructureException(Strings.DatabaseAccessExceptionMessage);
                }
                tr.Commit(); // TODO: this can throw Exception and InvalidOperationException
            }
            catch (SqlCeException ex)
            {
                // in Open()
                if (tr != null)
                    tr.Rollback(); // TODO: this can throw Exception and InvalidOperationException
                throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
            }
            catch (InvalidOperationException ex)
            {
                // in ExecuteNonQuery(), ExecureScalar()
                if (tr != null)
                    tr.Rollback();
                throw new InfrastructureException(Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
            }
            // za svaki slucaj
            catch (Exception)
            {
                if (tr != null)
                    tr.Rollback();
                throw;
            }
            finally
            {
                conn.Close();
            }
        }
Ejemplo n.º 16
0
 public UcesnikTakmicenja4(Ekipa ekipa, Nullable <short> qualOrder,
                           Nullable <float> qualScore, Nullable <short> qualRank, KvalifikacioniStatus kvalStatus)
     : base(qualOrder, qualScore, qualRank, kvalStatus)
 {
     _ekipa = ekipa;
 }