public static ONLTeamsCompLink AddTeamToCompetition(this ONLteam team, long compID, int?ranking = null) { int rToSet = (ranking == null ? int.MaxValue : ranking.Value); if (team.ONLTeamsCompLinks.Count(l => l.comp_id == compID) > 0) { ONLTeamsCompLink lnkF = dc.ONLTeamsCompLinks.First(l => l.team_id == team.iid && l.comp_id == compID); if (ranking != null && lnkF.ranking_pos != rToSet) { lnkF.ranking_pos = rToSet; dc.SaveChanges(); } return(lnkF); } long newID; try { newID = dc.ONLTeamsCompLinks.OrderByDescending(l => l.iid).First().iid + 1; } catch { newID = 1; } int secretaryID; try { secretaryID = dc.ONLTeamsCompLinks.Where(l => l.comp_id == compID). OrderByDescending(li => li.secretary_id).First().secretary_id + 1; } catch { secretaryID = 1; } ONLTeamsCompLink ln = ONLTeamsCompLink.CreateONLTeamsCompLink(newID, team.iid, compID, secretaryID, rToSet); dc.ONLTeamsCompLinks.AddObject(ln); dc.SaveChanges(); return(ln); }
public static void RemoveTeamFromCompetition(this ONLteam team, long compID) { var lnkList = from l in dc.ONLTeamsCompLinks where l.team_id == team.iid && l.comp_id == compID select l; if (lnkList.Count() < 1) { return; } var Arr = lnkList.ToArray(); for (int i = 0; i < Arr.Length; i++) { dc.ONLTeamsCompLinks.DeleteObject(Arr[i]); } dc.SaveChanges(); }
private bool SetTeam(ONLteam t) { if (t == null) { return(false); } panelEdit.Visible = true; SetCompVisible(); lblIid.Text = t.iid.ToString(); tbName.Text = t.name; if (cbUsedNow.Visible) { cbUsedNow.Checked = (t.ONLTeamsCompLinks.Count(lnk => lnk.comp_id == compID) > 0); if (cbUsedNow.Checked) { ONLTeamsCompLink lnk = t.ONLTeamsCompLinks.First(ln => ln.comp_id == compID); tbRanking.Text = (lnk.ranking_pos > 0 && lnk.ranking_pos < int.MaxValue) ? lnk.ranking_pos.ToString() : String.Empty; } else { tbRanking.Text = String.Empty; } } try { if (t.group_id == null || !t.group_id.HasValue) { cbGroupToSet.SelectedIndex = 0; } else { cbGroupToSet.SelectedValue = t.group_id.Value.ToString(); } } catch { cbGroupToSet.SelectedIndex = 0; } lblError.Text = String.Empty; return(true); }
protected void btnSubmit_Click(object sender, EventArgs e) { try { if (String.IsNullOrWhiteSpace(tbName.Text)) { lblError.Text = "Название команды не введено"; return; } if (cbGroupToSet.SelectedIndex < 0 || cbGroupToSet.SelectedItem == null) { lblError.Text = "Группа команд не выбрана"; return; } int?grIdToSet; if (cbGroupToSet.SelectedIndex == 0) { grIdToSet = null; } else { grIdToSet = new int?(int.Parse(cbGroupToSet.SelectedItem.Value)); } ONLteam tNew; if (String.IsNullOrEmpty(lblIid.Text)) { tNew = ONLteam.CreateONLteam((int)SortingClass.GetNextIID("ONLTeams", "iid", cn, null)); } else { tNew = GetTeamByIid(int.Parse(lblIid.Text)); } tNew.name = tbName.Text; if (String.IsNullOrEmpty(lblIid.Text)) { dc.ONLteams.AddObject(tNew); } tNew.group_id = grIdToSet; dc.SaveChanges(); if (cbUsedNow.Visible) { if (cbUsedNow.Checked) { int rankingPos; if (!int.TryParse(tbRanking.Text, out rankingPos)) { rankingPos = int.MaxValue; } tNew.AddTeamToCompetition(compID, new int?(rankingPos)); try { var uList = tNew.ONLusers.ToArray(); for (int i = 0; i < uList.Length; i++) { uList[i].AddUserToCompetition(compID); } } catch { } } else { tNew.RemoveTeamFromCompetition(compID); } } panelEdit.Visible = false; panelSelect.Enabled = true; panelTeamGroups.Visible = true; LoadTeams(); lblError.Text = "Команда создана/обновлена"; } catch (Exception ex) { lblError.Text = "Ошибка добавления/обновления команды:\r\n" + ex.Message; } }
public static bool HasClimbers(this ONLteam team, long compID, int groupID) { return(team.ONLClimberCompLinks.Count(l => (l.comp_id == compID && l.group_id == groupID)) > 0); }
public static bool HasClimbers(this ONLteam team, long compID) { return(team.ONLClimberCompLinks.Count(l => l.comp_id == compID) > 0); }
protected override void Page_Load(object sender, EventArgs e) { base.Page_Load(sender, e); if (!IsPostBack) { string sParam; try { sParam = CurrentCompetition.GetStringParam(Constants.PDB_COMP_ADD_APPL_INFO); } catch { sParam = String.Empty; } if (String.IsNullOrEmpty(sParam)) { lblNotifAdd.Visible = false; } else { lblNotifAdd.Visible = true; lblNotifAdd.Text = sParam; } bool needToSetMessage = !CheckDeadline(false); bool closeApp = !CheckDeadline(true) || needToSetMessage && !CurrentCompetition.GetBooleanParam(Constants.PDB_COMP_ALLOW_AFTER_DEADLINE); if (closeApp) { panelClimbers.Visible = false; lblMessageTop.Text = "Приём заявок на данные соревнования окончен."; AppsData.Enabled = false; lblNotifDeadline.Visible = false; return; } else if (needToSetMessage) { lblNotifDeadline.Visible = true; lblNotifDeadline.Text = "<br />Приём заявок закончен. Дальнейшие заявки возможны только по согласованию с организаторами"; } else { lblNotifDeadline.Visible = false; } try { panelConfirm.Visible = false; panelClimbers.Enabled = true; cbTeam.Items.Clear(); if (User.IsInRole(Constants.ROLE_ADMIN, compID)) { var tList = from t in dc.ONLteams where t.ONLTeamsCompLinks.Count(l => l.comp_id == compID) > 0 orderby t.name ascending select new { iid = t.iid, name = t.name }; cbTeam.Enabled = true; foreach (var t in tList) { cbTeam.Items.Add(new ListItem(t.name, t.iid.ToString())); } } else { MembershipUser mUser = Membership.GetUser(User.Identity.Name); if (mUser is ClmUser) { ONLteam team = ((ClmUser)mUser).Usr.ONLteam; if (team != null) { cbTeam.Items.Clear(); cbTeam.Items.Add(new ListItem(team.name, team.iid.ToString())); cbTeam.SelectedValue = team.iid.ToString(); cbTeam.Enabled = false; } } } uncClm.btnAddAppEnabled = false; ReloadData(); if (panelClimbers.Visible && panelClimbers.Enabled) { ClearForm(); } } catch { } finally { try { cn.Close(); } catch { } } } if (Request.Browser.EcmaScriptVersion.Major >= 1) { if (!Page.ClientScript.IsClientScriptBlockRegistered(Constants.SCRIPT_TEAM_SEL_ID)) { Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Constants.SCRIPT_TEAM_SEL_ID, " var teamSelID = '" + cbTeam.ClientID + "'; " + " var compID = " + compID.ToString() + "; ", true); } if (!Page.ClientScript.IsClientScriptBlockRegistered(Constants.SCRIPT_CLIMBER_VALIDATE)) { Page.ClientScript.RegisterClientScriptBlock(this.GetType(), Constants.SCRIPT_CLIMBER_VALIDATE, "<script src=\"../Scripts/MyScripts.js\" type=\"text/javascript\"></script>"); } if (!Page.ClientScript.IsClientScriptBlockRegistered("FORM_VALIDATESCRIPT")) { string script = "<script type=\"text/javascript\"> \r\n" + " function ValidateAllForms() { \r\n" + " var hasErrors = false; \r\n" + " var f; \r\n" + " var allEmpty = true; \r\n"; List <ClimberControl> clList = new List <ClimberControl>(); clList.Add(ClimberControl1); clList.Add(ClimberControl2); clList.Add(ClimberControl3); clList.Add(ClimberControl4); foreach (var c in clList) { script += " f = ValidateLabel('" + c.TbName_ClientID + "', '" + c.LblError_ClientID + "'); \r\n" + " if (!hasErrors && f > 0) \r\n" + " hasErrors = true; \r\n" + " if (allEmpty && f > -1) \r\n" + " allEmpty = false; \r\n"; } script += " if(allEmpty) { \r\n" + " alert('Вы не ввели ни одного участника'); \r\n" + " return false; \r\n " + " } \r\n" + " if (hasErrors) \r\n" + " return confirm('Возможно, вы ввели ошибочные данные. Продолжить?'); \r\n" + " return true; \r\n " + " }; \r\n" + "</script>"; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "FORM_VALIDATESCRIPT", script); } if (String.IsNullOrEmpty(btnSubmitClimbers.Attributes["onclick"])) { btnSubmitClimbers.Attributes.Add("onclick", "return ValidateAllForms();"); } } }