protected override bool Save() { base.Save(); try { ArrayList alQueries = new ArrayList(); using (PriemEntities context = new PriemEntities()) { using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.RequiresNew)) { try { //меняет тип конкурса foreach (DataGridViewRow r in dgvLeft.Rows) { SortedList slVals = new SortedList(); Guid? abitId = new Guid(r.Cells["Id"].Value.ToString()); int?compNew = (from ab in context.extAbit where ab.Id == abitId select ab.OtherCompetitionId).FirstOrDefault(); if (compNew == null) { compNew = 4; } if (compNew < 1 || compNew > 7) { compNew = 4; } context.Abiturient_UpdateCompetititon(compNew, null, false, abitId); } transaction.Complete(); } catch (Exception exc) { throw new Exception("Ошибка при сохранении данных: " + exc.Message); } } } return(true); } catch (Exception ex) { MessageBox.Show("Ошибка при изменении типа конкурса: " + ex.Message); return(false); } }
protected override bool Save() { if (!base.Save()) { MessageBox.Show("Не удалось сохранить протокол.\nИзменения не сохранены"); return(false); } try { ArrayList alQueries = new ArrayList(); using (PriemEntities context = new PriemEntities()) { using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.RequiresNew)) { try { //меняет тип конкурса + снимает отметку foreach (DataGridViewRow r in dgvLeft.Rows) { SortedList slVals = new SortedList(); Guid? abitId = new Guid(r.Cells["Id"].Value.ToString()); int? compNew = 4; context.Abiturient_UpdateCompetititon(compNew, null, false, abitId); context.Abiturient_UpdateHasOriginals(false, abitId);//оригиналы больше "не поданы" } transaction.Complete(); } catch (Exception exc) { throw new Exception("Ошибка при сохранении данных: " + exc.Message); } } } return(true); } catch (Exception ex) { MessageBox.Show("Ошибка при изменении типа конкурса: " + ex.Message); return(false); } }
private void btnOk_Click(object sender, EventArgs e) { DialogResult res = MessageBox.Show("Подтвердить зачет олимпиад у выбранных заявлений как тип конкурса б/э? (необходимо будет создать новый протокол о допуске для всех выбранных абитуриентов!)", "Зачет олимпиад", MessageBoxButtons.YesNoCancel); if (res == DialogResult.Yes) { try { using (PriemEntities context = new PriemEntities()) { using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.RequiresNew)) { foreach (DataGridViewRow row in dgvAbitList.Rows) { if (row.Cells["Изменить тип конкурса"].Value.ToString() == "True") { Guid abId = new Guid(row.Cells["Id"].Value.ToString()); context.Abiturient_UpdateCompetititon(1, null, true, abId); context.Abiturient_UpdateChecked(false, abId); //исключаем из предыдущего протокола о допуске Guid?protId = (from pr in context.qProtocolHistory where pr.AbiturientId == abId && !pr.Excluded && !pr.IsOld select pr.ProtocolId).FirstOrDefault(); if (protId != null) { context.ProtocolHistory_UpdateExcluded(abId, protId, true, null); } } } } } } catch (Exception ex) { WinFormsServ.Error("Ошибка при сохранении перезачета оценок. Оценки перезачтены не будут. " + ex.Message); } UpdateDataGrid(); } }