private ONLoperation GetOperation() { var opList = from o in dc.ONLoperations where o.user_id == User.Identity.Name && o.comp_id == compID && o.state == Constants.OP_STATE_NEW orderby o.op_date descending select o; if (opList.Count() < 1) { ONLoperation opToRet = ONLoperation.CreateONLoperation( iid: (dc.ONLoperations.Count() < 1) ? 1 : (dc.ONLoperations.OrderByDescending(o => o.iid).First().iid + 1), comp_id: compID, user_id: User.Identity.Name, op_date: DateTime.UtcNow, state: Constants.OP_STATE_NEW); return(opToRet); } else { return(opList.First()); } }
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(); }
protected void btnConfirm_Click(object sender, EventArgs e) { List <ClimberLink> uList = new List <ClimberLink>(); ONLClimberCompLink c; ONLclimber outClimber; bool newClm; try { if (!ClimberControl1.IsEmpty()) { c = ClimberControl1.createClimber(cbTeam.SelectedValue, out newClm, out outClimber); if (c != null) { uList.Add(new ClimberLink(c, outClimber, newClm)); } } if (!ClimberControl2.IsEmpty()) { c = ClimberControl2.createClimber(cbTeam.SelectedValue, out newClm, out outClimber); if (c != null) { uList.Add(new ClimberLink(c, outClimber, newClm)); } } if (!ClimberControl3.IsEmpty()) { c = ClimberControl3.createClimber(cbTeam.SelectedValue, out newClm, out outClimber); if (c != null) { uList.Add(new ClimberLink(c, outClimber, newClm)); } } if (!ClimberControl4.IsEmpty()) { c = ClimberControl4.createClimber(cbTeam.SelectedValue, out newClm, out outClimber); if (c != null) { uList.Add(new ClimberLink(c, outClimber, newClm)); } } if (User.IsInRole(Constants.ROLE_ADMIN, compID)) { foreach (var v in uList) { v.Link.state = Constants.CLIMBER_CONFIRMED; } } else { ONLoperation currentOp; try { currentOp = dc.ONLoperations.First(op => op.user_id == User.Identity.Name && op.comp_id == compID && op.state == Constants.OP_STATE_NEW); } catch { currentOp = ONLoperation.CreateONLoperation( SortingClass.GetNextIID("ONLOperations", "iid", cn, null), compID, User.Identity.Name, DateTime.UtcNow, Constants.OP_STATE_NEW); dc.ONLoperations.AddObject(currentOp); dc.SaveChanges(); } foreach (var v in uList) { v.Link.updOpIid = currentOp.iid; v.Link.ONLoperation = currentOp; } } foreach (var v in uList) { try { if (v.Link.EntityState != System.Data.EntityState.Detached) { dc.ONLClimberCompLinks.Detach(v.Link); } } catch { } try { if (v.NewClimber && v.Climber.EntityState != System.Data.EntityState.Detached) { dc.ONLclimbers.Detach(v.Climber); } } catch { } } int nErr; string erMsg; InsertClimberLink(uList, dc, out nErr, out erMsg); lblMessageTop.Text = "Заявка на " + (uList.Count - nErr) + " человек принята."; if (nErr > 0) { lblMessageTop.Text += "<br />Произошли ошибки при добавлении следующих участников:<br />" + erMsg; } if (User.IsInRole(Constants.ROLE_ADMIN, compID)) { panelConfirm.Visible = false; ReloadData(); ClearForm(); panelClimbers.Enabled = true; panelConfirm.Visible = false; } else { lblMessageTop.Text += "<br />Для окончательного подтверждения заявки, после ввода всех участников, нажмите на кнопку \"" + "Подтвердить все завки через e-mail\". Старший тренер Вашего региона подтвердит все введённые заявки."; panelConfirm.Visible = false; ReloadData(); uncClm.btnAddAppEnabled = true; uncClm.LblMessageText = ""; } } catch (Exception ex) { lblConfMessage.Text = "Ошибка добавления участников"; if (User.IsInRole(Constants.ROLE_ADMIN, compID)) { lblConfMessage.Text += ": " + ex.Message; } } }