예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ContestIDValidator cv = new ContestIDValidator();
                cv.Process();

                if (cv.ParameterDefined)
                {
                    selcon.Visible = false;
                    Contest t = Contest.GetContest(cv.ValidatedValue);
                    if (!Page.User.IsInRole("Administrator") && t.Time == ContestTime.Forthcoming)
                    {
                        throw new NeJudgeInvalidParametersException("problemID");
                    }
                    //"Соревнование, которое вы хотите просмотреть, ещё не началось. Попробуйте позже."
                    problemsPH.Controls.Add(new LiteralControl("<div align='center'><h1 style='color:#418ade;'>" + t.Name + "</h1></div>"));
                    foreach (Problem p in Problem.GetProblems(t.ID))
                    {
                        problemsPH.Controls.Add(new LiteralControl("<hr/>"));
                        ProblemView pv = (ProblemView)LoadControl("~/UC/problemview.ascx");
                        pv.ProblemID = p.ID;
                        problemsPH.Controls.Add(pv);
                        problemsPH.Controls.Add(new LiteralControl("<br/>"));
                    }
                }
                else
                {
                    problemsPH.Visible = false;
                }
            }
        }
예제 #2
0
        private void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Page.Response.AddHeader("Refresh","300");
                ContestIDValidator cv = new ContestIDValidator();
                cv.Process();

                if (cv.ParameterDefined)
                {
                    selcon.ContestID = cv.ValidatedValue;

                    Contest con = Contest.GetContest(cv.ValidatedValue);
                    if (con.Time == ContestTime.Forthcoming)
                    {
                        throw new NeJudgeException("Нельзя просмотреть монитор будущего соревнования");
                    }
                    DateTime cur_time = TimeUtils.ZeroDateTime(DateTime.Now);
                    DateTime t_begin  = TimeUtils.ZeroDateTime(con.Beginning);
                    DateTime t_end    = TimeUtils.ZeroDateTime(con.Ending);

                    // Последнее обновление
                    TimeSpan dur       = TimeUtils.ZeroTimeSpan(t_end - t_begin);
                    TimeSpan elapsed   = TimeUtils.ZeroTimeSpan((cur_time - t_begin < dur) ? cur_time - t_begin : dur);
                    TimeSpan estimated = TimeUtils.ZeroTimeSpan(dur - elapsed);
                    if (elapsed >= dur)
                    {
                        st_label.InnerHtml += "<span style='color:red;font-size:small;display:block;'>(Соревнование окончено)</span>";
                    }
                    refresh.Text = TimeUtils.BeautifyTimeSpan(elapsed, false);
                    // Продолжительность соревнования
                    period.Text = TimeUtils.BeautifyTimeSpan(dur, false);
                    left.Text   = TimeUtils.BeautifyTimeSpan(estimated, false);


                    /*ContestTypeHandler h = Factory.GetHandlerInstance(con.Type);
                     * DataTable[] dts = h.MonitorManager.Build(con.ID);
                     * for(int i = 0; i < dts.Length; i++)
                     * {
                     *      DataTable dt = dts[i];
                     *      monitorPH.Controls.Add(new LiteralControl(dt.TableName));
                     *      DataGrid gv = new DataGrid();
                     *      gv.Width = new Unit(100.0, UnitType.Percentage);
                     *      gv.CellPadding = 5;
                     *      gv.HeaderStyle.CssClass = "gridHeader";
                     *      gv.DataSource = dt;
                     *      gv.DataBind();
                     *      h.MonitorManager.PaintDataGrid(gv, i, dt.Columns.Count - 3);
                     *      monitorPH.Controls.Add(gv);
                     *      if ( i != dts.Length - 1 )
                     *              monitorPH.Controls.Add(new LiteralControl("<br />"));
                     * }*/
                }
                else
                {
                    info.Visible = false;
                }
            }
        }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ContestIDValidator cv = new ContestIDValidator();
                cv.Process();

                if (cv.ParameterDefined)
                {
                    if (Contest.GetContest(cv.ValidatedValue).Time == ContestTime.Forthcoming && !Page.User.IsInRole("Administrator"))
                    {
                        throw new NeJudgeInvalidParametersException("contestID");
                    }
                    //Hide("Ёто соревнование начнетс¤ через " + HtmlFunctions.BeautifyTimeSpan(db.GetContest(tid).Beginning - DateTime.Now, false) + ". —ейчас задачи посмотреть нельз¤.");

                    #region —сылочки (Visible в зависимости от роли)

                    statHL.NavigateUrl  = UrlRenderer.RenderStatusUrl(cv.ValidatedValue);
                    quesHL.NavigateUrl  = UrlRenderer.RenderQuestionsUrl(cv.ValidatedValue);
                    monHL.NavigateUrl   = UrlRenderer.RenderMonitorUrl(cv.ValidatedValue);
                    editHL.NavigateUrl  = UrlRenderer.RenderEditContestUrl(cv.ValidatedValue);
                    printHL.NavigateUrl = UrlRenderer.RenderPrintContestUrl(cv.ValidatedValue);

                    if (Page.User.IsInRole("Anonymous"))
                    {
                        statHL.Visible = false;
                        quesHL.Visible = false;
                    }
                    if (Page.User.IsInRole("Administrator"))
                    {
                        editHL.Visible = true;
                    }

                    #endregion
                }
                else
                {
                    monHL.Visible   = false;
                    statHL.Visible  = false;
                    quesHL.Visible  = false;
                    printHL.Visible = false;
                }
            }
        }