コード例 #1
0
        protected void sendMessageB_Click(object sender, EventArgs e)
        {
            int     pid = selprob.ProblemID;
            Contest c   = Contest.GetContest(Problem.GetProblem(pid).ContestID);

            if (c.Time == ContestTime.Current)
            {
                if (Page.IsValid)
                {
                    Message m = null;
                    if (User.IsInRole("User"))
                    {
                        m = new Message(pid, User.Identity.Name, DateTime.Now, MessageType.Question, messageTB.Text, "");
                    }
                    else
                    {
                        m = new Message(pid, User.Identity.Name, DateTime.Now, MessageType.Clarification, "", messageTB.Text);
                    }
                    m.Store();
                    Response.Redirect(UrlRenderer.RenderQuestionsUrl(Problem.GetProblem(pid).ContestID));
                }
            }
            else
            {
                throw new NeJudgeInvalidParametersException("pid");                 //"—оревнование либо закончилось, либо ещЄ не начиналась."
            }
        }
コード例 #2
0
 private void InitLinks(int pid)
 {
     submitHL.NavigateUrl       = UrlRenderer.RenderSubmitUrl(pid);
     askHL.NavigateUrl          = UrlRenderer.RenderAskUrl(pid);
     printProblemHL.NavigateUrl = UrlRenderer.RenderPrintProblemUrl(pid);
     questionsHL.NavigateUrl    = UrlRenderer.RenderQuestionsUrl(Problem.GetProblem(pid).ContestID);
     editHL.NavigateUrl         = UrlRenderer.RenderEditProblemUrl(pid, 'p');
 }
コード例 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
            dt.Columns.Add("Monitor");
            dt.Columns.Add("Beginning", typeof(DateTime));
            dt.Columns.Add("Ending", typeof(DateTime));
            dt.Columns.Add("Status");

            Contest[] cons = Contest.GetContests(ContestTime.Current |
                                                 ContestTime.Forthcoming | ContestTime.Past);

            foreach (Contest cnt in cons)
            {
                DataRow dr = dt.NewRow();
                dr[0] = cnt.ID;
                if (cnt.Time == ContestTime.Forthcoming && !Page.User.IsInRole("Administrator"))
                {
                    dr[1] = cnt.Name;
                }
                else
                {
                    dr[1] = UrlRenderer.RenderContestUrl(cnt);
                }
                if (cnt.Time == ContestTime.Forthcoming && !Page.User.IsInRole("Judge"))
                {
                    dr[2] = "Недоступен";
                }
                else
                {
                    dr[2] = UrlRenderer.RenderMonitorUrl(cnt);
                }
                dr[3] = cnt.Beginning;
                dr[4] = cnt.Ending;
                switch (cnt.Time)
                {
                case ContestTime.Current:
                    dr[5] = String.Format("Идет (конец через {0})",
                                          TimeUtils.BeautifyTimeSpan(cnt.Ending - DateTime.Now, false));
                    break;

                case ContestTime.Forthcoming:
                    dr[5] = String.Format("Еще не начиналось (начало через {0})",
                                          TimeUtils.BeautifyTimeSpan(cnt.Beginning - DateTime.Now, false));
                    break;

                case ContestTime.Past:
                    dr[5] = "Закончилось";
                    break;
                }
                dt.Rows.Add(dr);
            }

            contestsGV.DataSource = dt;
            contestsGV.DataBind();
        }
コード例 #4
0
 /// <summary>
 /// Renders the content of the error.
 /// </summary>
 /// <param name="urlToRender">The error URL.</param>
 /// <returns>Return the Url content to write on respons stream.</returns>
 protected virtual string RenderUrlContent(string urlToRender)
 {
     using (var textWriter = new System.IO.StringWriter())
     {
         var urlRenderer = new UrlRenderer {
             Url = urlToRender
         };
         urlRenderer.Render(textWriter);
         return(textWriter.ToString());
     }
 }
コード例 #5
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;
                }
            }
        }
コード例 #6
0
 public void goButton_Click(object sender, EventArgs e)
 {
     Response.Redirect(UrlRenderer.RenderProblemUrl(selprob.ProblemID));
 }