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();
        }
Example #3
0
 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);
 }
Example #4
0
        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);
 }
Example #7
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();");
                }
            }
        }