protected void gvApps_RowCommand(object sender, GridViewCommandEventArgs e) { try { int rowN = Convert.ToInt32(e.CommandArgument); gvApps.SelectRow(rowN); long iid = Convert.ToInt64(gvApps.SelectedValue); string clmName = gvApps.SelectedRow.Cells[2].Text; ClimbingConfirmations cfs = new ClimbingConfirmations(); SqlCommand cmd = new SqlCommand(); cmd.Connection = cn; bool reloadApps = false; string clmStr = getClmString(iid); switch (e.CommandName) { case "ConfirmLine": bool cDel, qfErr, cEdit; reloadApps = true; string message; switch (cfs.ConfirmClimber(iid, out cDel, out cEdit, out qfErr, out message)) { case InsertingResult.SUCCESS: if (cDel) { LblErrorMessage.Text = "Участник " + clmName + " успешно удалён"; MessageString = MessageString + "\r\n" + clmStr + "Удаление"; } else { MessageString = MessageString + "\r\n" + clmStr + (cEdit ? "Правка" : "Добавление"); LblErrorMessage.Text = "Участник " + clmName + " успешно " + (cEdit ? "изменён" : "внесён в базу данных"); } break; case InsertingResult.QUOTA_EXCEED: LblErrorMessage.Text = "Участник " + clmName + " не был добавлен по причине превышения квоты"; break; case InsertingResult.TO_QUEUE: MessageString = MessageString + "\r\n" + clmStr + "В очередь"; LblErrorMessage.Text = "Участник " + clmName + " был поставлен в очередь."; break; case InsertingResult.DUPLICATE: reloadApps = false; LblErrorMessage.Text = "Такой участник уже есть в БД"; break; default: reloadApps = false; LblErrorMessage.Text = "Ошибка зявки учатника " + clmName; break; } if (qfErr) { LblErrorMessage.Text += "; " + ClimbingConfirmations.RAZR_NOTE; } if (!String.IsNullOrEmpty(message)) { LblErrorMessage.Text += "<br />" + message; } break; case "DeleteLine": var toDel = dc.ONLClimberCompLinks.First(l => l.iid == iid); List <ONLClimberCompLink> tUpd = new List <ONLClimberCompLink>(); foreach (var v in toDel.ONLClimberCompLink1) { tUpd.Add(v); } foreach (var v in tUpd) { v.replacementID = null; } dc.SaveChanges(); dc.ONLClimberCompLinks.DeleteObject(toDel); dc.SaveChanges(); LblErrorMessage.Text = "Заявка на участника " + clmName + " отменена."; reloadApps = true; break; case "EditLine": SetToEdit(iid); return; } if (reloadApps) { LongStringClass lstr = new LongStringClass(compID, MessageString); Thread thr = new Thread(RepreshOp); thr.Start(lstr); } RefreshTable(); } catch (Exception ex) { LblErrorMessage.Text = "Ошибка правки"; if (User.IsInRole(Constants.ROLE_ADMIN, compID)) { LblErrorMessage.Text += ": " + ex.Message; } } }
private void ConfirmCLimber() { if (String.IsNullOrEmpty(hfEditingClimber.Value)) { return; } long curClmId; if (!long.TryParse(hfEditingClimber.Value, out curClmId)) { return; } ONLClimberCompLink old; try { old = dc.ONLClimberCompLinks.First(l => l.iid == curClmId); } catch { return; } bool isUser = !User.IsInRole(Constants.ROLE_ADMIN, compID); if (isUser && !old.is_changeble) { climberEditControl.ErrMessage = "Изменение данного участника невозможно"; return; } bool newClm; ONLclimber createdClm; var uCl = climberEditControl.createClimber(old.team_id.ToString(), out newClm, out createdClm); if (uCl == null) { return; } if (isUser && uCl.group_id != old.group_id) { climberEditControl.ErrMessage = "Для изменения возрастной группы подайте новую заявку"; if (newClm && createdClm.EntityState != EntityState.Detached) { dc.ONLclimbers.Detach(createdClm); } if (uCl.EntityState != EntityState.Detached) { dc.ONLClimberCompLinks.Detach(uCl); } return; } if (newClm) { int newClmId; if (dc.ONLclimbers.Count() < 1) { newClmId = 1; } else { newClmId = dc.ONLclimbers.OrderByDescending(c => c.iid).First().iid + 1; } createdClm.iid = newClmId; dc.ONLclimbers.AddObject(createdClm); if (uCl.EntityState != EntityState.Detached) { dc.ONLClimberCompLinks.Detach(uCl); } dc.SaveChanges(); } if (User.IsInRole(Constants.ROLE_ADMIN, compID)) { old.climber_id = createdClm.iid; ConfirmAdmin(uCl, old); } else { uCl.iid = dc.ONLClimberCompLinks.OrderByDescending(l => l.iid).First().iid + 1; ONLoperation nextOp = GetOperation(); uCl.updOpIid = nextOp.iid; uCl.ONLoperation = nextOp; uCl.climber_id = createdClm.iid; uCl.ONLclimber = createdClm; uCl.secretary_id = old.secretary_id; dc.ONLClimberCompLinks.AddObject(uCl); dc.SaveChanges(); old.replacementID = uCl.iid; old.ONLClimberCompLink2 = uCl; old.sys_date_update = DateTime.UtcNow; dc.SaveChanges(); uncList.LblMessageText = "Изменение принято. Для отправки изменений старшему тренеру Вашего региона нажмите на \"Подтвердить все заявки через e-mail\""; } ClimbingConfirmations.DeleteDeadClimbers(dc); panelEdit.Visible = false; panelView.Enabled = true; panelQueue.Enabled = true; FillLists(); }