private void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType(), Context); rp.ProcessRequirements(); Page.Response.AddHeader("Refresh", "90"); if (rp.TidDefined) { tid = selcon.TID = rp.ContestID; questionsGrid.Columns[5].Visible = BaseDb.IsAdmin(Page.User); using (BaseDb db = DbFactory.ConstructDatabase()) { if (db.GetContest(tid).Future) { throw new NeJudgeInvalidParametersException("tid"); //Hide("Ќельз¤ просмотреть вопросы будущего соревновани¤"); } else { Off(); Bind(); } } } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ContestIDDefined) { selcon.Visible = false; Contest t = Contest.GetContest(rp.ContestID); 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; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ProblemIDDefined) { selprob.Visible = false; goButton.Visible = false; Problem p = Problem.GetProblem(rp.ProblemID); Contest t = Contest.GetContest(p.ContestID); if (!Page.User.IsInRole("Administrator") && t.Time == ContestTime.Forthcoming) { throw new NeJudgeInvalidParametersException("problemID"); } //"Соревнование, задачу с которого вы хотите просмотреть, ещё не началось. Попробуйте позже." problemView.ProblemID = p.ID; } else { problemView.Visible = false; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.UserIDDefined) //редактирование { reg = false; if (!User.IsInRole("Judge") && rp.UserID != User.Identity.Name) { throw new NeJudgeException("Identity"); } Table1.Rows[2].Visible = false; loginTextBoxValidator.Enabled = false; u = NeUser.GetUser(rp.UserID); nameTextBox.Text = u.Name; mailTextBox.Text = u.Email; } else //регистрация { reg = true; u = new NeUser(); Table1.Rows[3].Visible = false; oldpassTextBoxValidator.Enabled = false; } } }
private void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); //Page.Response.AddHeader("Refresh","300"); if (rp.ContestIDDefined) { selcon.ContestID = rp.ContestID; Contest con = Contest.GetContest(rp.ContestID); 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; } } }
private void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType(), Context); rp.ProcessRequirements(); selprob.AddHidableControl(goButton); if (rp.PidDefined) { selprob.PID = rp.ProblemID; BaseDb db = DbFactory.ConstructDatabase(); Problem p = db.GetProblem(rp.ProblemID); Contest t = db.GetContest(p.TID); db.Close(); if (!BaseDb.IsAdmin(Page.User) && t.Future) { throw new NeJudgeInvalidParametersException("pid"); //"Соревнование, задачу с которого вы хотите просмотреть, ещё не началось. Попробуйте позже." } #region Возня со ссылками InitLinks(rp.ProblemID); if (BaseDb.IsAdmin(Page.User)) { Hyperlink2.Text = "Редактировать"; Hyperlink2.NavigateUrl = "../editproblem.aspx?pid=" + rp.ProblemID + "&ret=p"; Hyperlink3.Visible = Hyperlink4.Visible = false; } else { if (BaseDb.IsAnonymous(Page.User) || t.Old) { Hyperlink2.Visible = Hyperlink3.Visible = Hyperlink4.Visible = false; } } #endregion FillLiterals(p); } else { Hide(); } } }
protected void Page_Load(object sender, EventArgs e) { if (!User.IsInRole("Judge") && !User.IsInRole("User")) { throw new NeJudgeSecurityException("User"); } if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ProblemIDDefined) { selprob.ProblemID = rp.ProblemID; } } }
private void Page_Load(object sender, EventArgs e) { if (!BaseDb.IsUser(Page.User)) { throw new NeJudgeSecurityException("User"); } if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType(), Context); rp.ProcessRequirements(); selprob.AddHidableControl(hidabletable); if (rp.PidDefined) { selprob.PID = rp.ProblemID; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ProblemIDDefined) { selprob.ProblemID = rp.ProblemID; Problem p = Problem.GetProblem(rp.ProblemID); Contest t = Contest.GetContest(p.ContestID); if (!Page.User.IsInRole("Administrator") && t.Time == ContestTime.Forthcoming) { throw new NeJudgeInvalidParametersException("problemID"); } //"Соревнование, задачу с которого вы хотите просмотреть, ещё не началось. Попробуйте позже." problemView.ProblemID = p.ID; #region Возня со ссылками InitLinks(rp.ProblemID); if (Page.User.IsInRole("Administrator")) { editHL.Visible = true; HideLinks(); } else { if (Page.User.IsInRole("Anonymous") || t.Time == ContestTime.Past) { HideLinks(); } } #endregion } else { problemTable.Visible = false; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ContestIDDefined) { if (Contest.GetContest(rp.ContestID).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(rp.ContestID); quesHL.NavigateUrl = UrlRenderer.RenderQuestionsUrl(rp.ContestID); monHL.NavigateUrl = UrlRenderer.RenderMonitorUrl(rp.ContestID); editHL.NavigateUrl = UrlRenderer.RenderEditContestUrl(rp.ContestID); printHL.NavigateUrl = UrlRenderer.RenderPrintContestUrl(rp.ContestID); 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; } } }
protected void Page_Load(object sender, EventArgs e) { if (!User.IsInRole("Judge") && !User.IsInRole("User")) { throw new NeJudgeSecurityException("User, Judge"); } if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); //Page.Response.AddHeader("Refresh", "90"); MessagesFilter mf = new MessagesFilter(rp.ContestIDDefined?rp.ContestID:0, MessageType.Question); if (rp.UserIDDefined && User.IsInRole("Judge")) { mf.UserID = rp.UserID; } mf.RequiredEmptyJuryMessage = Request.QueryString["answered"] == null || Request.QueryString["answered"].ToLower() != "true"; if (rp.ContestIDDefined) { if (Contest.GetContest(rp.ContestID).Time == ContestTime.Forthcoming) { throw new NeJudgeInvalidParametersException("contestID", "Нельзя просмотреть вопросы будущего соревнования"); } mf.ContestID = rp.ContestID; mf.ProblemID = (rp.ProblemIDDefined) ? rp.ProblemID : 0; selmess.Filter = mf; questionsGV.Columns[6].Visible = User.IsInRole("Judge"); Bind(); } else { questionsGV.Visible = false; selmess.Filter = mf; } } }
private void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType(), Context); rp.ProcessRequirements(); using (BaseDb db = DbFactory.ConstructDatabase()) { if (rp.TidDefined) { selcon.TID = rp.ContestID; #region Ссылочки (Visible в зависимости от роли) InitLinks(rp.ContestID); if (BaseDb.IsAnonymous(Page.User)) { subHyperLink.Visible = false; quesHyperLink.Visible = false; } if (BaseDb.IsAdmin(Page.User)) { editHyperLink.Visible = true; } #endregion if (db.GetContest(rp.ContestID).Future&& !BaseDb.IsAdmin(Page.User)) { throw new NeJudgeInvalidParametersException("tid"); //Hide("Это соревнование начнется через " + HtmlFunctions.BeautifyTimeSpan(db.GetContest(tid).Beginning - DateTime.Now, false) + ". Сейчас задачи посмотреть нельзя."); } else { RedrawRepeater(rp.ContestID); } } else { Hide(""); } } } }
protected void Page_Load(object sender, EventArgs e) { if (Page.User.IsInRole("Anonymous")) { throw new NeJudgeSecurityException("User, Administrator, Judge"); } if (!IsPostBack) { //Page.Response.AddHeader("Refresh", "90"); RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); /*SubmissionsFilter*/ f = new SubmissionsFilter(0); if (rp.OutcomeDefined) { f.Outcome = rp.Outcome; } f.UserID = (rp.UserIDDefined && User.IsInRole("Judge")) ? rp.UserID : User.Identity.Name; if (rp.ContestIDDefined) { if (Contest.GetContest(rp.ContestID).Time == ContestTime.Forthcoming && !Page.User.IsInRole("Judge")) { throw new NeJudgeSecurityException("Ќевозможно просмотреть submissions будущего соревновани¤"); } f.ContestID = rp.ContestID; f.ProblemID = (rp.ProblemIDDefined) ? rp.ProblemID : 0; int page; int.TryParse(Request.QueryString["page"], out page); statusGV.PageIndex = (page >= 1) ? page - 1 : 0; } else { statusGV.Visible = false; } filter.Filter = f; //Context.Items["filter"] = f; } }
protected void Page_Load(object sender, EventArgs e) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.SubmissionIDDefined) { Submission sm = Submission.GetSubmission(rp.SubmissionID); ITestLogManager itm = Factory.GetHandlerInstance( Contest.GetContest(Problem.GetProblem(sm.ProblemID).ContestID).Type ).TestLogManager; TestLogGrid = itm.BuildTestLogGrid(sm); TestLogGrid.Visible = true; } else { TestLogGrid.Visible = false; } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ModeDefined) { if (rp.Mode == "edit") { contest = Contest.GetContest(rp.ContestID); } mv.SetActiveView(contestParams); monthsDDL.Attributes.Add("onchange", "SelectedMonthChanged(this.options[this.selectedIndex].value)"); } else { menu.Visible = false; mv.Visible = false; saveB.Visible = false; } } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType()); rp.ProcessRequirements(); if (rp.ModeDefined) { if (rp.Mode == "create") { if ((Contest.GetContest(rp.ContestID).Time & (ContestTime.Past | ContestTime.Current)) != 0) { throw new NeJudgeInvalidParametersException("contestID", "Нельзя создать задачу в текущем или прошедшем соревновании"); } selprob.ContestID = rp.ContestID; problem = new Problem(); problem.ContestID = rp.ContestID; } else if (rp.Mode == "edit") { selprob.ProblemID = rp.ProblemID; problem = Problem.GetProblem(rp.ProblemID); } problem.LoadStatement(); mv.SetActiveView(contentsParams); } else { mv.Visible = false; menu.Visible = false; saveB.Visible = false; } } }
private void Page_Load(object sender, EventArgs e) { if (BaseDb.IsAnonymous(Page.User)) { throw new NeJudgeSecurityException("User, Administrator, Judge"); } if (!IsPostBack) { Page.Response.AddHeader("Refresh", "90"); ArrayList sids = new ArrayList(); int page = 0; #region параметры _rp = new RequirementsProcessor(this.GetType(), Context); _rp.ProcessRequirements(); if (Page.Request.QueryString["sname"] != null) { problem = Page.Request.QueryString["sname"]; } if (Page.Request.QueryString["result"] != null) { result = Page.Request.QueryString["result"]; } try { page = int.Parse(Page.Request.QueryString["page"]); } catch { page = 0; } using (BaseDb db = DbFactory.ConstructDatabase()) { if (_rp.UidDefined) { if (BaseDb.IsJudge(Page.User)) { filter.UserID = _rp.UserID; } else { throw new NeJudgeSecurityException("Judge"); } } if (_rp.TidDefined) { //filter.ContestID = _rp.ContestID; if (db.GetContest(_rp.ContestID).Future) { Hide("Невозможно просмотреть submissions будущего соревнования"); } else { int pid = -1; if (problem != "") { pid = db.GetPidByShortName(_rp.ContestID, problem); if (pid == -1) { throw new NeJudgeInvalidParametersException("sname"); } else { if (!Page.IsPostBack) { filter.ProblemID = problem[0]; } } } if (result != "") { try { Result r = (Result)Enum.Parse (typeof(Result), result); if (!Page.IsPostBack) { filter.Result = r; } } catch (ArgumentException) { throw new NeJudgeInvalidParametersException("result"); } } #endregion foreach (Submission s in db.GetSubmissions(_rp.ContestID, _rp.UidDefined ? _rp.UserID : 0, (problem == "") ? 0 : pid, result)) { sids.Add(s.SID); } if (sids.Count == 0) { //Hide("В этом соревновании нет ни одного submission"); } sids.Reverse(); statusGrid.VirtualItemCount = sids.Count; if (sids.Count - page * statusGrid.PageSize < 0) { page = sids.Count / statusGrid.PageSize; } statusGrid.CurrentPageIndex = page; ArrayList arr = new ArrayList(); int l; if (sids.Count - page * statusGrid.PageSize < statusGrid.PageSize) { l = sids.Count; } else { l = page * statusGrid.PageSize + statusGrid.PageSize; } for (int i = page * statusGrid.PageSize; i < l; i++) { arr.Add(sids[i]); } Bind(arr); HtmlFunctions.BeautifyDataGrid(statusGrid); } } else { Hide(null); } } } }
private void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { RequirementsProcessor rp = new RequirementsProcessor(GetType(), Context); rp.ProcessRequirements(); //Page.Response.AddHeader("Refresh","300"); if (rp.TidDefined) { Contest con; BaseDb db = DbFactory.ConstructDatabase(); using ( db ) { con = db.GetContest(rp.ContestID); if (con.Future) { Hide("Нельзя просмотреть монитор будущего соревнования"); db.Close(); } else { 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 = HtmlFunctions.BeautifyTimeSpan(elapsed, false); // Продолжительность соревнования period.Text = HtmlFunctions.BeautifyTimeSpan(dur, false); left.Text = HtmlFunctions.BeautifyTimeSpan(estimated, false); } } /*DataTable mon_dt = new DataTable("Результаты"), stat_dt = new DataTable("Статистика"); * mon_dt.Columns.Add("ID"); * mon_dt.Columns.Add("Имя участника"); * //mon_dt.PrimaryKey = new DataColumn[]{mon_dt.Columns[0]}; * * stat_dt.Columns.Add("Показатель"); * DataRow dr = stat_dt.NewRow(); * dr[0] = "Команд решили"; * stat_dt.Rows.Add(dr); * dr = stat_dt.NewRow(); * dr[0] = "Команд решили/команд всего"; * stat_dt.Rows.Add(dr); * * int tid = rp.ContestID; * selcon.TID = tid; * BaseDb db = DbFactory.ConstructDatabase(); * //HyperLink1.NavigateUrl += tid; * //Прочитали результаты * Contest t; * * if ((t = db.GetContest(tid)).Future) * { * Hide("Нельзя просмотреть монитор будущего сорвевнования"); * db.Close(); * } * else * { * DateTime cur_time = ZeroDateTime(DateTime.Now); * DateTime t_begin = ZeroDateTime(t.Beginning); * DateTime t_end = ZeroDateTime(t.Ending); * * // Последнее обновление * TimeSpan dur = ZeroTimeSpan(t_end - t_begin); * TimeSpan elapsed = ZeroTimeSpan( (cur_time - t_begin < dur) ? cur_time - t_begin : dur); * TimeSpan estimated = ZeroTimeSpan(dur - elapsed); * if ( elapsed >= dur ) * { * st_label.InnerHtml += * "<span style='color:red;font-size:small;display:block;'>(Соревнование окончено)</span>"; * } * refresh.Text = HtmlFunctions.BeautifyTimeSpan(elapsed, false); * // Продолжительность соревнования * period.Text = HtmlFunctions.BeautifyTimeSpan(dur, false); * left.Text = HtmlFunctions.BeautifyTimeSpan(estimated, false); * * ArrayList ps = db.GetProblems(tid); * if (ps.Count == 0) * { * Hide("В этом соревновании нет задач"); * return; * } * int i = 0; * for (i = 0; i < ps.Count; i++) * { * mon_dt.Columns.Add(((Problem) ps[i]).ShortName); * //mon_dt.Columns.Add(string.Format("<a style='grid_first' href='problem.aspx?pid={0}'>{1}</a>",((Problem)ps[i]).PID, ((Problem)ps[i]).ShortName)); * stat_dt.Columns.Add(((Problem) ps[i]).ShortName); * //stat_dt.Columns.Add(string.Format("<a href='problem.aspx?pid={0}'>{1}</a>",((Problem)ps[i]).PID, ((Problem)ps[i]).ShortName)); * } * mon_dt.Columns.Add("Всего решено"); * mon_dt.Columns.Add("Время"); * mon_dt.Columns.Add("Место"); * //Колонки созданы * TimeSpan the_latest = new TimeSpan(0, 0, 0, 0, 0); * bool has_ac = false; * ArrayList user_data = new ArrayList(); * #region обработка очереди * * foreach (Submission s in db.GetSubmissions(tid, 0)) * { * // Юзер, пославший текущий сабмишн * UserData u = null; * foreach (UserData ud in user_data) * { * if (ud.UID == s.UID) * { * u = ud; * break; * } * } * // Новая строка с юзером * if (u == null) * { * u = new UserData(); * u.UID = (uint) s.UID; * u.Solved = 0; * u.Time = new TimeSpan(0, 0, 0, 0, 0); * u.Problems = new ArrayList(); * foreach (Problem p in ps) * { * Attempts at = new Attempts(); * at.AcTime = new TimeSpan(0, 0, 0, 0, 0); * at.Count = 0; * at.PID = (uint) p.PID; * u.Problems.Add(at); * } * user_data.Add(u); * } * Attempts subm_att = null; * foreach (Attempts sat in u.Problems) * { * if (sat.PID == s.PID) * { * subm_att = sat; * break; * } * } * if (subm_att == null) * { * throw new ApplicationException("Невозможно найти задачу в описании участника"); * } * if (s.Result.Code == Result.AC) * { * if (subm_att.Count <= 0) * { * // вычисление попыток * subm_att.Count = -subm_att.Count + 1; * subm_att.AcTime = s.Time - t_begin; * subm_att.AcTime = ZeroTimeSpan(subm_att.AcTime); * has_ac = true; * if (the_latest < subm_att.AcTime) * { * the_latest = subm_att.AcTime; * } * // начисление времени с учетом штрафа * u.Time += subm_att.AcTime + * new TimeSpan(0, 0, (subm_att.Count - 1)*20, 0, 0); * } * } * else if (s.Result.Code != Result.WAIT && s.Result.Code != Result.RU) * { * if (subm_att.Count <= 0) * { * subm_att.Count--; * } * } * } * #endregion * * foreach (UserData ud in user_data) * { * foreach (Attempts atte in ud.Problems) * { * if (atte.Count > 0) * { * ud.Solved++; * } * } * } * * if (has_ac) * { * lastac.Text = HtmlFunctions.BeautifyTimeSpan(the_latest, false); * } * else * { * lastac.Text = "Еще не было"; * } * user_data.Sort(new UserCompare()); * if (user_data.Count == 0) * { * st_label.InnerHtml += "<span style='color:#CFC411;font-size:small;display:block;'>(Не было послано ни одного решения)</span>"; * } * int[] ac_counts = new int[ps.Count]; * int[] total_counts = new int[ps.Count]; * foreach (UserData ud in user_data) * { * DataRow mon_dtr = mon_dt.NewRow(); * mon_dtr[0] = ud.UID; * User us = db.GetUser((int) ud.UID); * mon_dtr[1] = us.Fullname; * mon_dt.Rows.Add(mon_dtr); * for (int j = 0; j < ud.Problems.Count; j++) * { * int count = ((Attempts) ud.Problems[j]).Count; * if (count > 0) * { * // Write a result to the problem's column * mon_dtr[2 + j] = "<span style='color:blue;'>+"; * if (count != 1) * { * mon_dtr[2 + j] += (count - 1).ToString(); * } * mon_dtr[2 + j] += "</span><span style='font-size:smaller;display:block;'>("; * mon_dtr[2 + j] += HtmlFunctions.BeautifyTimeSpan(((Attempts) ud.Problems[j]).AcTime, true); * mon_dtr[2 + j] += ")</span>"; * // Update AC received users count * ac_counts[j]++; * total_counts[j]++; * } * else if (count < 0) * { * mon_dtr[2 + j] = "<span style='color:red;'>"; * mon_dtr[2 + j] += count.ToString(); * mon_dtr[2 + j] += "</span>"; * total_counts[j]++; * } * else * { * mon_dtr[2 + j] = ""; * } * } * mon_dtr[mon_dt.Columns.Count - 2] = (int) ud.Time.TotalMinutes; * mon_dtr[mon_dt.Columns.Count - 3] = ud.Solved; * } * db.Close(); * for (int l = 0; l < mon_dt.Rows.Count; l++) * { * mon_dt.Rows[l][mon_dt.Columns.Count - 1] = l + 1; * } * * * monitorDG.DataSource = mon_dt; * monitorDG.DataBind(); * #region статистика * * for (int k = 0; k < ps.Count; k++) * { * stat_dt.Rows[0][k + 1] = ac_counts[k]; * double ac_percent = (total_counts[k] == 0) * ? 0 : (double)ac_counts[k] / (double)total_counts[k] * 100.0; * stat_dt.Rows[1][k + 1] = String.Format("{0:F2}%", ac_percent); * } * statDG.DataSource = stat_dt; * statDG.DataBind(); * #endregion * * Draw(mon_dt.Columns.Count - 3); * }*/ Monitor m = MonitorManager.GetMonitor(rp.ContestID, Context); m.Reload(); if (m.HasAccepted) { lastac.Text = String.Format("{0}<br><strong>Задача {1}</strong>", HtmlFunctions.BeautifyTimeSpan( TimeUtils.ZeroTimeSpan(m.LastAccepted.Time - con.Beginning), false), m.LastAccepted.ProblemShortName); } else { lastac.Text = "Еще не было"; } DataTable mon = m.FormatMonitor(); monitorDG.DataSource = mon; monitorDG.DataBind(); Draw(mon.Columns.Count - 3); statDG.DataSource = m.FormatStats(); statDG.DataBind(); } else { Hide(""); } } }