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); }
protected UcesnikFinala(Nullable <short> qualOrder, Nullable <float> qualScore, Nullable <short> qualRank, KvalifikacioniStatus kvalStatus) { _qualOrder = qualOrder; _qualScore = qualScore; _qualRank = qualRank; _kvalStatus = kvalStatus; }
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; }
protected UcesnikFinala(Nullable<short> qualOrder, Nullable<float> qualScore, Nullable<short> qualRank, KvalifikacioniStatus kvalStatus) { _qualOrder = qualOrder; _qualScore = qualScore; _qualRank = qualRank; _kvalStatus = kvalStatus; }
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; }
//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(); } }
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()); }
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); }
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."); } }
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); }
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); }
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); }
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(); } }
public UcesnikTakmicenja4(Ekipa ekipa, Nullable <short> qualOrder, Nullable <float> qualScore, Nullable <short> qualRank, KvalifikacioniStatus kvalStatus) : base(qualOrder, qualScore, qualRank, kvalStatus) { _ekipa = ekipa; }