Esempio n. 1
0
        protected bool CheckDeadline(bool modifications)
        {
            if (CurrentCompetition == null)
            {
                return(false);
            }
            if (User.IsInRole(Constants.ROLE_ADMIN, compID))
            {
                return(DateTime.Now < CurrentCompetition.GetDateParam(Constants.PDB_COMP_START_DATE));
            }
            string   paramToCheck = modifications ? Constants.PDB_COMP_DEADLINE_CHANGE : Constants.PDB_COMP_DEADLINE;
            DateTime lastPossible = CurrentCompetition.GetDateParam(paramToCheck).AddDays(1.0);

            return(DateTime.Now < lastPossible);
        }
        private void FillLists()
        {
            //string sWhere = "";
            //DataTable dt = new DataTable();
            //DataTable dtQ = new DataTable();
            if (!User.IsInRole(Constants.ROLE_ADMIN, compID))
            {
                lblAdmMessage.Visible = false;
            }
            lblAdmMessage.Text = "";
            //string sOrderBy, sCmd;



            var climberNormList = from lnk in dc.ONLClimberCompLinks
                                  where lnk.comp_id == compID &&
                                  lnk.state == Constants.CLIMBER_CONFIRMED
                                  orderby lnk.ONLteam.name, lnk.ONLGroup.oldYear, lnk.ONLGroup.genderFemale
                select new
            {
                num          = lnk.queue_pos,
                iid          = lnk.iid,
                secretary_id = lnk.secretary_id,
                name         = lnk.ONLclimber.surname + " " + lnk.ONLclimber.name +
                               (lnk.vk ? " (в/к)" : String.Empty),
                age          = lnk.ONLclimber.age.Value,
                qf           = lnk.qf,
                team         = lnk.ONLteam.name,
                grp          = lnk.ONLGroup.name,
                lead         = lnk.queue_Lead < 1 ? (lnk.lead == 1 ? "+" : (lnk.lead == 2 ? "Лично" : "-")) : "Оч." /* + lnk.queue_Lead.ToString()*/,             //lnk.lead,
                speed        = lnk.queue_Speed < 1 ? (lnk.speed == 1 ? "+" : (lnk.speed == 2 ? "Лично" : "-")) : "Оч." /* + lnk.queue_Speed.ToString()*/,         //lnk.speed,
                boulder      = lnk.queue_Boulder < 1 ? (lnk.boulder == 1 ? "+" : (lnk.boulder == 2 ? "Лично" : "-")) : "Оч." /* + lnk.queue_Boulder.ToString()*/, //lnk.boulder,
                appl_type    = lnk.appl_type,
                is_changeble = lnk.is_changeble,
                ONLlink      = lnk,
                queue_pos    = lnk.queue_pos,
                group_p      = lnk.ONLGroup
            };
            string sF    = getTeamRestr();
            int    teamF = -1;

            try
            {
                if (!String.IsNullOrEmpty(sF))
                {
                    teamF = int.Parse(sF);
                }
                else if (!String.IsNullOrEmpty(teamList.SelectedValue))
                {
                    teamF = int.Parse(teamList.SelectedValue);
                }
            }
            catch { }
            if (teamF > 0)
            {
                climberNormList = climberNormList.Where(a => a.ONLlink.team_id == teamF);
            }
            if (!String.IsNullOrEmpty(sF))
            {
                climberNormList = climberNormList.Where(a => a.ONLlink.replacementID == null);
            }
            int groupF = String.IsNullOrEmpty(groupsList.SelectedValue) ? -1 : int.Parse(groupsList.SelectedValue);

            if (groupF > 0)
            {
                climberNormList = climberNormList.Where(a => a.ONLlink.group_id == groupF);
            }



            var comp = (from c in dc.ONLCompetitions
                        where c.iid == compID
                        select c).First();
            DateTime?lastUpd;

            try { lastUpd = dc.ONLClimberCompLinks.Where(lnk => lnk.comp_id == compID).OrderByDescending(l => l.sys_date_update).First().sys_date_update; }
            catch { lastUpd = null; }
            lbl1.Text = (lastUpd == null) ? String.Empty : ("Список создан в " + lastUpd.Value.ToUniversalTime().ToShortDateString() + " " +
                                                            lastUpd.Value.ToUniversalTime().ToLongTimeString());

            if (User.Identity.IsAuthenticated(compID) && !User.IsInRole(Constants.ROLE_ADMIN, compID))
            {
                uncList.ReloadData();
                uncList.Visible = true;
            }

            clList.DataSource = (from t in climberNormList
                                 orderby t.team, t.group_p.genderFemale,
                                 t.group_p.oldYear, t.name, t.num
                                 select t);
            clList.DataBind();

            for (int i = 0; i < clList.Rows.Count; i++)
            {
                clList.Rows[i].Cells[1].Text = (i + 1).ToString();
            }

            var climberQueueList = climberNormList.Where(a => a.queue_pos > 0);

            climberNormList = climberNormList.Where(b => b.queue_pos < 1);

            panelQueue.Visible = (climberQueueList.Count() > 0);
            if (panelQueue.Visible)
            {
                gvQueue.DataSource = (from t in climberQueueList
                                      orderby t.group_p.genderFemale, t.group_p.oldYear,
                                      t.group_p.iid, t.queue_pos, t.team, t.name, t.num
                                      select t);
                gvQueue.DataBind();
            }
            try
            {
                bool lead = CurrentCompetition.Lead(), speed = CurrentCompetition.Speed(), boulder = CurrentCompetition.Boulder();
                if (!User.Identity.IsAuthenticated(compID))
                {
                    foreach (var dfc in clList.Columns)
                    {
                        ButtonField bf = dfc as ButtonField;
                        if (bf != null)
                        {
                            bf.Visible = false;
                        }
                        BoundField cf = dfc as BoundField;
                        if (cf != null)
                        {
                            if (!lead && cf.DataField.Equals("lead", StringComparison.InvariantCultureIgnoreCase))
                            {
                                cf.Visible = false;
                            }
                            else if (!speed && cf.DataField.Equals("speed", StringComparison.InvariantCultureIgnoreCase))
                            {
                                cf.Visible = false;
                            }
                            else if (!boulder && cf.DataField.Equals("boulder", StringComparison.InvariantCultureIgnoreCase))
                            {
                                cf.Visible = false;
                            }
                        }
                        CheckBoxField cbf = dfc as CheckBoxField;
                        if (cbf != null && cbf.DataField.Equals("is_changeble", StringComparison.InvariantCultureIgnoreCase))
                        {
                            cbf.Visible = false;
                        }
                    }
                    foreach (var dfc in gvQueue.Columns)
                    {
                        ButtonField bf = dfc as ButtonField;
                        if (bf != null)
                        {
                            bf.Visible = false;
                        }
                        BoundField cf = dfc as BoundField;
                        if (cf != null)
                        {
                            if (!lead && cf.DataField.Equals("lead", StringComparison.InvariantCultureIgnoreCase))
                            {
                                cf.Visible = false;
                            }
                            else if (!speed && cf.DataField.Equals("speed", StringComparison.InvariantCultureIgnoreCase))
                            {
                                cf.Visible = false;
                            }
                            else if (!boulder && cf.DataField.Equals("boulder", StringComparison.InvariantCultureIgnoreCase))
                            {
                                cf.Visible = false;
                            }
                        }
                        CheckBoxField cbf = dfc as CheckBoxField;
                        if (cbf != null && cbf.DataField.Equals("is_changeble", StringComparison.InvariantCultureIgnoreCase))
                        {
                            cbf.Visible = false;
                        }
                    }
                }
            }
            catch { }

            /*
             * try
             * {
             *  cn.Close();
             *  clList.DataSource = dt;
             *  clList.DataBind();
             *
             *  panelQueue.Visible = (dtQ.Rows.Count > 0);
             *  if (panelQueue.Visible)
             *  {
             *      gvQueue.DataSource = dtQ;
             *      gvQueue.DataBind();
             *  }
             *
             * }
             * catch { }*/
        }
Esempio n. 3
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();");
                }
            }
        }