private void unesiOcenu(SpravaGridUserControl c, bool openedWithEnter) { DataGridViewSelectedRowCollection selRows = c.DataGridViewUserControl.DataGridView.SelectedRows; if (selRows.Count != 1) return; NastupNaSpravi nastup = selRows[0].DataBoundItem as NastupNaSpravi; Ocena ocena = null; GimnasticarUcesnik g = null; bool ok = false; try { DataAccessProviderFactory factory = new DataAccessProviderFactory(); dataContext = factory.GetDataContext(); dataContext.BeginTransaction(); g = nastup.Gimnasticar; ocena = findOcena(g, deoTakKod, c.Sprava); ok = 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 (!ok) { Close(); return; } Nullable<int> ocenaId = null; if (ocena != null) ocenaId = ocena.Id; OcenaForm f = new OcenaForm(ocenaId, g, c.Sprava, deoTakKod, takmicenje.Id); if (f.ShowDialog() == DialogResult.OK) { int index = c.DataGridViewUserControl.getSelectedItemIndex(); if (openedWithEnter) { // Enter ce automatski selektovati novu vrstu. Potrebno je samo proveriti da li je ovo poslednja vrsta. if (index == c.DataGridViewUserControl.DataGridView.Rows.Count - 1) { // uneta je zadnja ocena c.clearSelection(); } } else { ++index; if (index < c.DataGridViewUserControl.DataGridView.Rows.Count) { // selektuj sledecu ocenu c.DataGridViewUserControl.setSelectedItemIndex(index); } else { // uneta je zadnja ocena c.clearSelection(); } } } }