本文整理汇总了C#中IDataContext.Commit方法的典型用法代码示例。如果您正苦于以下问题:C# IDataContext.Commit方法的具体用法?C# IDataContext.Commit怎么用?C# IDataContext.Commit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataContext
的用法示例。
在下文中一共展示了IDataContext.Commit方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: btnOK_Click
// TODO: Dodaj provere i validaciju.
private void btnOK_Click(object sender, EventArgs e)
{
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
takmicenje.ZrebZaFinalePoSpravama = textBox1.Text.Trim();
dataContext.Save(takmicenje);
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showError(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
this.DialogResult = DialogResult.Cancel;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
}
}
示例2: delete
public void delete()
{
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
IList<Gimnasticar> gimnasticari = dataContext.GetAll<Gimnasticar>();
foreach (Gimnasticar g in gimnasticari)
dataContext.Delete(g);
IList<KategorijaGimnasticara> kategorije = dataContext.GetAll<KategorijaGimnasticara>();
foreach (KategorijaGimnasticara k in kategorije)
dataContext.Delete(k);
IList<Klub> klubovi = dataContext.GetAll<Klub>();
foreach (Klub k in klubovi)
dataContext.Delete(k);
IList<Mesto> mesta = dataContext.GetAll<Mesto>();
foreach (Mesto m in mesta)
dataContext.Delete(m);
IList<Sudija> sudije = dataContext.GetAll<Sudija>();
foreach (Sudija s in sudije)
dataContext.Delete(s);
IList<Drzava> drzave = dataContext.GetAll<Drzava>();
foreach (Drzava d in drzave)
dataContext.Delete(d);
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
throw new InfrastructureException(
Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
}
}
示例3: insert
public void insert()
{
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
insertTakmicenje();
insertGimnasticariAndDrzaveUcesniciAndAddRezTakmicenjaUcesnici();
insertSudijeUcesnici();
insertRasporedSudija();
insertStartListe();
insertOcene();
insertRezultatiUkupno(DeoTakmicenjaKod.Takmicenje1);
insertRezultatiUkupno(DeoTakmicenjaKod.Takmicenje2);
insertRezultatiSprava(DeoTakmicenjaKod.Takmicenje1);
insertRezultatiSprava(DeoTakmicenjaKod.Takmicenje3);
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
throw new InfrastructureException(
Strings.getFullDatabaseAccessExceptionMessage(ex), ex);
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
}
}
示例4: promeniKlubDrzava
private void promeniKlubDrzava(bool prikaziKlub)
{
DataGridViewUserControl dgw = getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl;
List<SudijaUcesnik> sudije = new List<SudijaUcesnik>();
foreach (SudijaNaSpravi s in dgw.getSelectedItems<SudijaNaSpravi>())
{
if (s.Sudija != null)
sudije.Add(s.Sudija);
}
if (sudije.Count == 0)
return;
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
foreach (SudijaUcesnik s in sudije)
{
s.NastupaZaDrzavu = !prikaziKlub;
dataContext.Save(s);
}
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
Close();
return;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
}
SudijaNaSpravi s2 = dgw.getSelectedItem<SudijaNaSpravi>();
dgw.refreshItems();
dgw.setSelectedItem<SudijaNaSpravi>(s2);
}
示例5: btnDelete_Click
private void btnDelete_Click(object sender, EventArgs e)
{
if (ActiveRaspored == null)
return;
string msgFmt = "Da li zelite da izbrisete raspored sudija?";
if (!MessageDialogs.queryConfirmation(String.Format(
msgFmt, ""), this.Text))
return;
bool deleted = false;
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
dataContext.Delete(ActiveRaspored);
dataContext.Commit();
deleted = true;
}
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;
}
if (!deleted)
return;
rasporedi.Remove(ActiveRaspored);
tabOpened.RemoveAt(tabControl1.SelectedIndex);
tabControl1.TabPages.Remove(tabControl1.SelectedTab);
}
示例6: promeniNacinRotacije
private void promeniNacinRotacije(NacinRotacije nacinRotacije, Sprava sprava)
{
if (ActiveRotacija != 1)
return;
StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprava, ActiveGrupa, ActiveRotacija);
if (startLista.NacinRotacije == nacinRotacije)
return;
startLista.NacinRotacije = nacinRotacije;
bool close = false;
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
dataContext.Save(startLista);
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
close = true;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
Cursor.Hide();
Cursor.Current = Cursors.Arrow;
}
if (close)
{
Close();
return;
}
mnRotirajEkipeRotirajGim.Checked = nacinRotacije == NacinRotacije.RotirajEkipeRotirajGimnasticare;
mnNeRotirajEkipeRotirajGim.Checked = nacinRotacije == NacinRotacije.NeRotirajEkipeRotirajGimnasticare;
mnRotirajSve.Checked = nacinRotacije == NacinRotacije.RotirajSve;
mnNeRotirajNista.Checked = nacinRotacije == NacinRotacije.NeRotirajNista;
}
示例7: oznaci
private void oznaci(bool oznaciKaoPojedinca)
{
StartListaNaSpravi startLista = ActiveRaspored.getStartLista(clickedSprava, ActiveGrupa, ActiveRotacija);
IList<NastupNaSpravi> selNastupi = getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl.getSelectedItems<NastupNaSpravi>();
if (selNastupi.Count == 0)
return;
if (!areConsecutiveRowsSelected(getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl.DataGridView))
{
string msg;
if (oznaciKaoPojedinca)
msg = "Samo uzastopne gimnasticare je moguce oznaciti kao pojedinca.";
else
msg = "Samo uzastopne gimnasticare je moguce oznaciti kao ekipu.";
MessageDialogs.showMessage(msg, this.Text);
return;
}
if (areSelectedRowsTrueSubsetOfEkipa(getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl.DataGridView))
{
// Selektovan je pravi podskup neke ekipe. Ponisti ekipe za sve gimnasticare iz ekipe.
// Time se sprecava da imamo ekipu ciji clanovi nisu uzastopni u start listi.
List<byte> selEkipe = getEkipe(getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl.DataGridView, true);
IList<NastupNaSpravi> sviNastupi = getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl.getItems<NastupNaSpravi>();
foreach (NastupNaSpravi n in sviNastupi)
{
if (selEkipe.IndexOf(n.Ekipa) != -1)
n.Ekipa = 0;
}
}
else
{
// Ponisti ekipe za selektovane gimnasticare.
foreach (NastupNaSpravi n in selNastupi)
{
n.Ekipa = 0;
}
}
if (!oznaciKaoPojedinca)
{
byte maxEkipa = getMaxEkipa(getActiveSpravaGridGroupUserControl()[clickedSprava]
.DataGridViewUserControl.DataGridView);
foreach (NastupNaSpravi n in selNastupi)
n.Ekipa = (byte)(maxEkipa + 1);
}
bool close = false;
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
dataContext.Save(startLista);
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
close = true;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
Cursor.Hide();
Cursor.Current = Cursors.Arrow;
}
if (close)
{
Close();
return;
}
getActiveSpravaGridGroupUserControl()[clickedSprava].clearSelection();
getActiveSpravaGridGroupUserControl()[clickedSprava].DataGridViewUserControl.DataGridView.Refresh();
}
示例8: kreirajPreostaleRotacije
private void kreirajPreostaleRotacije()
{
if (ActiveRaspored == null)
return;
/*int finalRot = (takmicenje.Gimnastika == Gimnastika.ZSG) ? 4 : 6;
string preostaleRot = "2-" + finalRot.ToString();
string msgFmt = "Da li zelite da kreirate rotacije {0}? Prethodni raspored koji je postojao na rotacijama {0} " +
"bice izbrisan.";
if (!MessageDialogs.queryConfirmation(String.Format(msgFmt, preostaleRot), this.Text))
return;*/
// Nadji aktivne sprave za rotaciju 1.
List<Sprava> aktivneSpraveRot1 = new List<Sprava>();
foreach (Sprava s in Sprave.getSprave(takmicenje.Gimnastika))
{
if (ActiveRaspored.getStartLista(s, ActiveGrupa, 1).Nastupi.Count != 0)
{
aktivneSpraveRot1.Add(s);
}
}
SpraveNaRotacijiForm form = null;
try
{
form = new SpraveNaRotacijiForm(takmicenje.Gimnastika, aktivneSpraveRot1);
if (form.ShowDialog() != DialogResult.OK)
{
return;
}
}
catch (Exception ex)
{
MessageDialogs.showError(ex.Message, this.Text);
return;
}
int finalRot = (takmicenje.Gimnastika == Gimnastika.ZSG) ? 4 : 6;
for (int rot = 2; rot <= finalRot; rot++)
{
kreirajRotaciju(rot, form.AktivneSprave);
}
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
Sprava[] sprave = Sprave.getSprave(takmicenje.Gimnastika);
for (int i = 2; i <= finalRot; i++)
{
for (int j = 0; j < sprave.Length; j++)
{
StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprave[j], ActiveGrupa, i);
dataContext.Save(startLista);
}
}
dataContext.Commit();
if (ActiveRotacija != 1)
setStartListe(ActiveRaspored, ActiveGrupa, ActiveRotacija);
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
Close();
return;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
Cursor.Hide();
Cursor.Current = Cursors.Arrow;
}
}
示例9: kreirajNaOsnovuKvalifikanata
// TODO: Ceo ovaj deo gde se kreira na osnovu kvalifikanata je radjen na brzinu, gde je jedino bilo bitno da moze da
// se primeni na Memorijal. Trebalo bi ga temeljno proveriti i uciniti robustnijim.
private void kreirajNaOsnovuKvalifikanata()
{
if (ActiveRaspored == null)
{
string msg2 = "Morate najpre da kreirate praznu start listu (dugme \"Nova start lista\").";
MessageDialogs.showMessage(msg2, this.Text);
return;
}
string msg = "Da li zelite da kreirate start listu na osnovu kvalifikanata?";
if (!MessageDialogs.queryConfirmation(msg, this.Text))
return;
List<int> zreb = parseZreb();
if (zreb == null)
{
msg = "Nepravilno unesen zreb za finale.";
MessageDialogs.showMessage(msg, this.Text);
return;
}
else if (zreb.Count == 0)
{
msg = "Nije unesen zreb za start liste. Da li zelite da kreirate start listu bez zreba?";
if (!MessageDialogs.queryConfirmation(msg, this.Text))
return;
}
List<TakmicarskaKategorija> kategorije = new List<TakmicarskaKategorija>(ActiveRaspored.Kategorije);
RezultatskoTakmicenje rezTakmicenje = loadRezTakmicenje(takmicenje.Id, kategorije[0]);
if (rezTakmicenje == null)
return;
Sprava[] sprave = Sprave.getSprave(takmicenje.Gimnastika);
for (int j = 0; j < sprave.Length; j++)
{
StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprave[j], ActiveGrupa, 1 /*ActiveRotacija*/);
startLista.clear();
List<UcesnikTakmicenja3> kvalifikanti = new List<UcesnikTakmicenja3>(
rezTakmicenje.Takmicenje3.getUcesniciKvalifikanti(sprave[j]));
PropertyDescriptor propDesc =
TypeDescriptor.GetProperties(typeof(UcesnikTakmicenja3))["QualOrder"];
kvalifikanti.Sort(new SortComparer<UcesnikTakmicenja3>(propDesc, ListSortDirection.Ascending));
int k = 0;
while (k < zreb.Count)
{
if (zreb[k] <= kvalifikanti.Count)
startLista.addNastup(new NastupNaSpravi(kvalifikanti[zreb[k] - 1].Gimnasticar, 0));
k++;
}
k = startLista.Nastupi.Count;
while (k < kvalifikanti.Count)
{
startLista.addNastup(new NastupNaSpravi(kvalifikanti[k].Gimnasticar, 0));
k++;
}
}
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
for (int j = 0; j < sprave.Length; j++)
{
StartListaNaSpravi startLista = ActiveRaspored.getStartLista(sprave[j], ActiveGrupa, 1 /*ActiveRotacija*/);
foreach (NastupNaSpravi n in startLista.Nastupi)
{
// potrebno za slucaj kada se u start listi nalaze i gimnasticari iz kategorija razlicitih od kategorija
// za koje start lista vazi.
// TODO3: Proveri da li ovo (tj. nedostatak ove naredbe na drugim mestima) ima veze sa time sto mi
// za start liste ponekad daje gresku, i zbog cega sam morao da u klasi NastupNaSpravi kesiram
// Kategoriju.
NHibernateUtil.Initialize(n.Gimnasticar.TakmicarskaKategorija);
}
dataContext.Save(startLista);
}
dataContext.Commit();
setStartListe(ActiveRaspored, ActiveGrupa, 1 /*ActiveRotacija*/);
getActiveSpravaGridGroupUserControl().clearSelection();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
Close();
return;
}
finally
{
//.........这里部分代码省略.........
示例10: btnOK_Click
private void btnOK_Click(object sender, EventArgs e)
{
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
// TODO: Prvo proveri da li je nesto menjano
dataContext.Save(sudijskiOdbor);
dataContext.Commit();
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
this.DialogResult = DialogResult.Cancel;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
}
}
示例11: btnOk_Click
private void btnOk_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
RezultatskoTakmicenje origTakmicenje = loadRezTakmicenje(rezTakmicenje.Id);
List<UcesnikTakmicenja3> orig = new List<UcesnikTakmicenja3>(origTakmicenje.Takmicenje3.getUcesniciKvalifikanti(sprava));
List<UcesnikTakmicenja3> curr = new List<UcesnikTakmicenja3>(rezTakmicenje.Takmicenje3.getUcesniciKvalifikanti(sprava));
List<UcesnikTakmicenja3> added = new List<UcesnikTakmicenja3>();
List<UcesnikTakmicenja3> updated = new List<UcesnikTakmicenja3>();
List<UcesnikTakmicenja3> deleted = new List<UcesnikTakmicenja3>();
diff(curr, orig, added, updated, deleted);
foreach (UcesnikTakmicenja3 u in updated)
{
UcesnikTakmicenja3 origUcesnik = origTakmicenje.Takmicenje3.getUcesnikKvalifikant(u.Gimnasticar, sprava);
if (origUcesnik == null)
throw new Exception("Greska u programu.");
origUcesnik.QualOrder = u.QualOrder;
}
foreach (UcesnikTakmicenja3 u in added)
{
origTakmicenje.Takmicenje3.addUcesnik(u);
Ocena o = loadOcena(u.Gimnasticar, DeoTakmicenjaKod.Takmicenje3, sprava);
if (sprava != Sprava.Preskok)
origTakmicenje.Takmicenje3.getPoredak(sprava).addGimnasticar(u.Gimnasticar, o, origTakmicenje);
else
origTakmicenje.Takmicenje3.PoredakPreskok.addGimnasticar(u.Gimnasticar, o, origTakmicenje);
}
foreach (UcesnikTakmicenja3 u in deleted)
{
origTakmicenje.Takmicenje3.removeUcesnik(u);
if (sprava == Sprava.Preskok)
origTakmicenje.Takmicenje3.PoredakPreskok.deleteGimnasticar(u.Gimnasticar, origTakmicenje);
else
origTakmicenje.Takmicenje3.getPoredak(sprava).deleteGimnasticar(u.Gimnasticar, origTakmicenje);
}
dataContext.Save(origTakmicenje.Takmicenje3);
dataContext.Commit();
}
catch (InfrastructureException ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showError(ex.Message, this.Text);
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showError(ex.Message, this.Text);
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
Cursor.Hide();
Cursor.Current = Cursors.Arrow;
}
}
示例12: deleteGimnasticar
private bool deleteGimnasticar(GimnasticarUcesnik g)
{
if (!canDeleteGimnasticar(g))
return false;
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
dataContext.Attach(g, false);
IList<RezultatskoTakmicenje> rezTakmicenja = loadRezTakmicenja(g);
foreach (RezultatskoTakmicenje rezTak in rezTakmicenja)
{
rezTak.Takmicenje1.removeGimnasticar(g);
// najpre ucitavam sprave na kojima je gimnasticar vezbao, da bih
// azurirao samo te poretke. Inace bi se u metodu
// Takmicenje1.gimnasticarDeleted ucitavali svi poretci (da bi se
// proverilo u kojima se gimnasticar nalazi) i zatim bi se svi
// ponovo snimali u bazu.
IList sprave = loadVezbaneSpraveTak1(g);
rezTak.Takmicenje1.gimnasticarDeleted(g, sprave, rezTak);
dataContext.Save(rezTak.Takmicenje1);
foreach (GimnasticarUcesnik g2 in rezTak.Takmicenje1.Gimnasticari)
dataContext.Evict(g2);
}
dataContext.Delete(g);
dataContext.Commit();
return true;
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showError(
String.Format("{0} \n\n{1}", deleteErrorMessage(), ex.Message),
this.Text);
return false;
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
Cursor.Hide();
Cursor.Current = Cursors.Arrow;
}
}
示例13: addCmd
private void addCmd()
{
NacinIzboraGimnasticaraForm form2 = new NacinIzboraGimnasticaraForm();
if (form2.ShowDialog() != DialogResult.OK)
return;
List<GimnasticarUcesnik> selGimnasticari = new List<GimnasticarUcesnik>();
DialogResult dlgResult = DialogResult.None;
SelectGimnasticariPrethTakmForm form3 = null;
SelectGimnasticarForm form = null;
if (form2.IzPrethodnogTakmicenja)
{
try
{
form3 = new SelectGimnasticariPrethTakmForm(ActiveKategorija.Gimnastika, false);
dlgResult = form3.ShowDialog();
}
catch (InfrastructureException ex)
{
MessageDialogs.showError(ex.Message, this.Text);
}
if (dlgResult != DialogResult.OK || form3.SelectedGimnasticari.Count == 0)
return;
}
else
{
try
{
form = new SelectGimnasticarForm(ActiveKategorija.Gimnastika);
dlgResult = form.ShowDialog();
}
catch (InfrastructureException ex)
{
MessageDialogs.showError(ex.Message, this.Text);
}
if (dlgResult != DialogResult.OK || form.SelectedEntities.Count == 0)
return;
}
bool added = false;
List<GimnasticarUcesnik> okGimnasticari = new List<GimnasticarUcesnik>();
List<GimnasticarUcesnik> illegalGimnasticari = new List<GimnasticarUcesnik>();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
if (form2.IzPrethodnogTakmicenja)
{
foreach (GimnasticarUcesnik g in form3.SelectedGimnasticari)
{
selGimnasticari.Add(createGimnasticarUcesnik(
g, ActiveKategorija));
}
}
else
{
foreach (Gimnasticar g in form.SelectedEntities)
{
selGimnasticari.Add(createGimnasticarUcesnik(
g, ActiveKategorija));
}
}
foreach (GimnasticarUcesnik g in selGimnasticari)
{
//GimnasticarUcesnik gimnasticar = createGimnasticarUcesnik(
// g, ActiveKategorija);
if (canAddGimnasticar(g/*imnasticar*/, ActiveKategorija))
okGimnasticari.Add(g/*imnasticar*/);
else
illegalGimnasticari.Add(g);
}
foreach (GimnasticarUcesnik g in okGimnasticari)
dataContext.Add(g);
dataContext.Commit();
added = true;
}
catch (Exception ex)
{
if (dataContext != null && dataContext.IsInTransaction)
dataContext.Rollback();
MessageDialogs.showMessage(
Strings.getFullDatabaseAccessExceptionMessage(ex), this.Text);
}
finally
{
if (dataContext != null)
dataContext.Dispose();
dataContext = null;
}
if (!added)
{
Close();
return;
//.........这里部分代码省略.........
示例14: btnDelete_Click
private void btnDelete_Click(object sender, EventArgs e)
{
Takmicenje selTakmicenje = dataGridViewUserControl1.getSelectedItem<Takmicenje>();
if (selTakmicenje == null)
return;
string msgFmt = "Da li zelite da izbrisete takmicenje \"{0}\"?";
if (!MessageDialogs.queryConfirmation(String.Format(
msgFmt, selTakmicenje), this.Text))
return;
if (selTakmicenje.Id == currTakmicenjeId)
{
string msg = "Nije dozvoljeno brisanje takmicenja koje je trenutno otvoreno.";
MessageDialogs.showMessage(msg, this.Text);
return;
}
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
deleteTakmicenje(selTakmicenje);
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;
Cursor.Hide();
Cursor.Current = Cursors.Arrow;
}
takmicenja.Remove(selTakmicenje);
setTakmicenja(takmicenja);
if (dataGridViewUserControl1.isSorted())
dataGridViewUserControl1.refreshItems();
}
示例15: btnDelete_Click
private void btnDelete_Click(object sender, EventArgs e)
{
IList<Ocena> selItems = getDataGridViewUserControl()
.getSelectedItems<Ocena>();
if (selItems.Count != 1)
return;
Ocena ocena = selItems[0];
string msg = String.Format(
"Da li zelite da izbrisete ocenu za gimnasticara '{0}', za spravu '{1}'?",
ocena.Gimnasticar.ImeSrednjeImePrezime, Sprave.toString(ActiveSprava));
if (!MessageDialogs.queryConfirmation(msg, this.Text))
return;
Cursor.Current = Cursors.WaitCursor;
Cursor.Show();
try
{
try
{
DataAccessProviderFactory factory = new DataAccessProviderFactory();
dataContext = factory.GetDataContext();
dataContext.BeginTransaction();
dataContext.Delete(ocena);
IList<RezultatskoTakmicenje> rezTakmicenja = loadRezTakmicenja(ocena.Gimnasticar);
foreach (RezultatskoTakmicenje rezTak in rezTakmicenja)
{
if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
{
rezTak.Takmicenje1.ocenaDeleted(ocena, rezTak);
dataContext.Save(rezTak.Takmicenje1);
}
else if (deoTakKod == DeoTakmicenjaKod.Takmicenje2)
{
if (rezTak.Propozicije.OdvojenoTak2)
{
rezTak.Takmicenje2.ocenaDeleted(ocena, rezTak);
dataContext.Save(rezTak.Takmicenje2);
}
}
else if (deoTakKod == DeoTakmicenjaKod.Takmicenje3)
{
if (rezTak.Propozicije.OdvojenoTak3)
{
rezTak.Takmicenje3.ocenaDeleted(ocena, rezTak);
dataContext.Save(rezTak.Takmicenje3);
}
}
else if (deoTakKod == DeoTakmicenjaKod.Takmicenje4)
{
if (rezTak.Propozicije.OdvojenoTak4)
{
rezTak.Takmicenje4.ocenaDeleted(ocena, rezTak);
dataContext.Save(rezTak.Takmicenje4);
}
}
}
foreach (RezultatskoTakmicenje rezTak in rezTakmicenja)
{
if (deoTakKod == DeoTakmicenjaKod.Takmicenje1)
{
foreach (GimnasticarUcesnik g in rezTak.Takmicenje1.Gimnasticari)
dataContext.Evict(g);
}
else if (deoTakKod == DeoTakmicenjaKod.Takmicenje2)
{
foreach (UcesnikTakmicenja2 u in rezTak.Takmicenje2.Ucesnici)
{
if (dataContext.Contains(u.Gimnasticar))
dataContext.Evict(u.Gimnasticar);
dataContext.Evict(u);
}
}
else if (deoTakKod == DeoTakmicenjaKod.Takmicenje3)
{
foreach (UcesnikTakmicenja3 u in rezTak.Takmicenje3.Ucesnici)
{
if (dataContext.Contains(u.Gimnasticar))
dataContext.Evict(u.Gimnasticar);
dataContext.Evict(u);
}
}
}
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)
//.........这里部分代码省略.........