Пример #1
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            base.OnActionExecuting(filterContext);

            Int32 cid = filterContext.RouteData.GetInt32("cid", -1);

            if (cid <= 0)
            {
                throw new InvalidRequstException(RequestType.Contest);
            }

            ContestEntity contest       = ContestManager.GetContest(cid);
            Boolean       hasPermission = AdminManager.HasPermission(PermissionType.ContestManage);

            if (!hasPermission && contest.IsHide)
            {
                throw new NoPermissionException("You have no privilege to view this contest!");
            }

            if (!hasPermission && contest.StartTime > DateTime.Now)
            {
                throw new NoPermissionException("This contest has not been started yet!");
            }

            if (!hasPermission && (contest.ContestType == ContestType.Private || contest.ContestType == ContestType.RegisterPrivate))
            {
                if (!ContestUserManager.ContestContainsUser(contest.ContestID, UserManager.CurrentUserName))
                {
                    throw new NoPermissionException("You have no privilege to view this contest!");
                }
            }

            filterContext.ActionParameters["Contest"] = contest;
            ViewData["Contest"] = contest;
        }
Пример #2
0
        /// <summary>
        /// 竞赛用户管理页面
        /// </summary>
        /// <param name="cid">竞赛ID</param>
        /// <param name="id">页面索引</param>
        /// <returns>操作后的结果</returns>
        public ActionResult UserList(Int32 cid, Int32 id = 1)
        {
            PagedList <ContestUserEntity> list = ContestUserManager.AdminGetContestUserList(cid, id);

            ViewBag.ContestID = cid;

            return(ViewWithPager(list, id));
        }
Пример #3
0
        public ActionResult Register(Int32 id, FormCollection form)
        {
            if (!ContestUserManager.RegisterCurrentUser(id, form["realname"]))
            {
                return(RedirectToErrorMessagePage("Contest Registration Failed!"));
            }

            return(RedirectToSuccessMessagePage("Your have register this contest successfully!"));
        }
Пример #4
0
        public ActionResult UserAdd(Int32 id, FormCollection form)
        {
            return(ResultToMessagePage(() =>
            {
                IMethodResult result = ContestUserManager.AdminInsertContestUsers(id, form["usernames"]);

                if (!result.IsSuccess)
                {
                    return new Tuple <IMethodResult, String>(result, String.Empty);
                }

                String successInfo = String.Format("{0} contest user(s) have been successfully added!", result.ResultObject.ToString());

                return new Tuple <IMethodResult, String>(result, successInfo);
            }));
        }
Пример #5
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            ContestEntity contest       = filterContext.ActionParameters["Contest"] as ContestEntity;
            Boolean       hasPermission = AdminManager.HasPermission(PermissionType.ContestManage);

            if (contest.EndTime < DateTime.Now)
            {
                throw new NoPermissionException("This contest has ended!");
            }

            if (!hasPermission && contest.ContestType == ContestType.RegisterPublic)
            {
                if (!ContestUserManager.ContestContainsUser(contest.ContestID, UserManager.CurrentUserName))
                {
                    throw new NoPermissionException("You have no privilege to submit in this contest!");
                }
            }
        }
Пример #6
0
        public ActionResult Export(Int32 id, FormCollection form)
        {
            String usernames = String.Empty;

            if (String.Equals(form["enablerealname"], "1"))
            {
                IMethodResult result = ContestUserManager.AdminGetContestUserList(id, 0x02 + 0x04, false);

                if (!result.IsSuccess)
                {
                    return(RedirectToErrorMessagePage(result.Description));
                }

                usernames = result.ResultObject as String;
            }
            else if (String.Equals(form["enablerealname"], "2"))
            {
                usernames = form["usernames"];
            }

            return(ResultToFile(ContestManager.AdminGetExportRanklist, id, usernames, id.ToString(), "xls"));
        }