Beispiel #1
0
        private bool DoRegister(UserRegisterModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (UserManager.Default.IsUserExist(model.Username))
            {
                model.UsernameErrorMessage = "Username already exist.";
                return(false);
            }

            UserHandle handle = UserManager.Default.CreateUser(model.Username);

            UserAuthorization.UpdatePassword(model.Username, model.Password);

            using (UserDataProvider data = UserDataProvider.Create(handle, false))
            {
                data.Sex       = SexConvert.ConvertFromString(model.Sex);
                data.UserGroup = UsergroupConvert.ConvertFromString(model.UserGroupName);
            }

            return(true);
        }
        /// <summary>
        /// 从给定的题目句柄创建 ProblemDetailModel 类的新实例。
        /// </summary>
        /// <param name="handle">题目句柄。</param>
        /// <exception cref="ArgumentNullException"/>
        public static ProblemDetailModel FromProblemHandle(ProblemHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            ProblemDetailModel model = new ProblemDetailModel();

            using (ProblemDataProvider data = ProblemDataProvider.Create(handle, true))
            {
                model.ProblemId         = data.ProblemId;
                model.Title             = data.Title;
                model.Description       = data.Description;
                model.InputDescription  = data.InputDescription;
                model.OutputDescription = data.OutputDescription;
                model.InputExample      = data.InputExample;
                model.OutputExample     = data.OutputExample;
                model.Hint          = data.Hint;
                model.Source        = data.Source;
                model.Author        = data.Author;
                model.UserGroupName = UsergroupConvert.ConvertToString(data.AuthorizationGroup);
            }

            return(model);
        }
 /// <summary>
 /// 创建 ContestDetailModel 类的新实例。
 /// </summary>
 public ContestDetailModel()
 {
     ContestId             = 0;
     Title                 = string.Empty;
     Creator               = string.Empty;
     UsergroupName         = UsergroupConvert.ConvertToString(UserGroup.Standard);
     CreationTime          = DateTime.Now;
     StartTimeString       = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     EndTimeString         = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
     ParticipationModeName = ContestParticipationModeConvert.ConvertToString(ContestParticipationMode.Both);
     AuthorizationModeName = ContestAuthorizationModeConvert.ConvertToString(ContestAuthorizationMode.Protected);
     Password              = string.Empty;
 }
Beispiel #4
0
 /// <summary>
 /// 创建 AddProblemModel 类的新实例。
 /// </summary>
 public ProblemDisplayModel()
 {
     ProblemId         = string.Empty;
     Title             = string.Empty;
     Description       = string.Empty;
     InputDescription  = string.Empty;
     OutputDescription = string.Empty;
     InputExample      = string.Empty;
     OutputExample     = string.Empty;
     Hint           = string.Empty;
     Source         = string.Empty;
     Author         = string.Empty;
     TimeLimit      = 1000;
     MemoryLimit    = 64;
     IsSpecialJudge = false;
     UserGroupName  = UsergroupConvert.ConvertToString(UserGroup.Guests);
 }
        public ActionResult ChangeUsergroup(FormCollection form)
        {
            // 检查查询参数。
            if (string.IsNullOrEmpty(Request.QueryString["username"]) ||
                string.IsNullOrEmpty(form["usergroup"]))
            {
                return(Redirect("~/Profile"));
            }

            string     username = Request.QueryString["username"];
            UserHandle handle   = UserManager.Default.QueryUserByName(username);

            if (handle == null)
            {
                // 指定的用户不存在。
                return(Redirect("~/Profile"));
            }

            // 检查用户操作权限。
            if (!UserSession.IsAuthorized(Session) ||
                !UserAuthorization.CheckAccessRights(UserGroup.Administrators, UserSession.GetUserGroup(Session)) ||
                string.Compare(username, UserSession.GetUsername(Session), false) == 0)
            {
                return(Redirect("~/Error/AccessDenied"));
            }

            UserGroup targetGroup;

            try
            {
                targetGroup = UsergroupConvert.ConvertFromString(form["usergroup"]);
            }
            catch (ArgumentException)
            {
                return(Redirect("~/Profile"));
            }

            // 执行操作。
            using (UserDataProvider data = UserDataProvider.Create(handle, false))
            {
                data.UserGroup = targetGroup;
            }

            return(Content(string.Empty));
        }
        /// <summary>
        /// 将当前数据模型中的内容保存至给定的比赛。
        /// </summary>
        /// <param name="handle">比赛句柄。</param>
        /// <exception cref="ArgumentNullException"/>
        public void SaveTo(ContestHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            using (ContestDataProvider data = ContestDataProvider.Create(handle, false))
            {
                data.Title              = Title;
                data.Creator            = Creator;
                data.AuthorizationGroup = UsergroupConvert.ConvertFromString(UsergroupName);
                data.StartTime          = DateTime.ParseExact(StartTimeString, "yyyy-MM-dd HH:mm:ss", new CultureInfo("en-US"));
                data.EndTime            = DateTime.ParseExact(EndTimeString, "yyyy-MM-dd HH:mm:ss", new CultureInfo("en-US"));
                data.ParticipationMode  = ContestParticipationModeConvert.ConvertFromString(ParticipationModeName);
                data.AuthorizationMode  = ContestAuthorizationModeConvert.ConvertFromString(AuthorizationModeName);
            }

            ContestAuthorization.UpdateContestPassword(handle, Password ?? string.Empty);
        }
        /// <summary>
        /// 将当前对象中的数据写入给定的题目中。
        /// </summary>
        /// <param name="handle">题目句柄。</param>
        /// <exception cref="ArgumentNullException"/>
        public void SaveTo(ProblemHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            using (ProblemDataProvider data = ProblemDataProvider.Create(handle, false))
            {
                data.Title             = Title;
                data.Description       = Description;
                data.InputDescription  = InputDescription;
                data.OutputDescription = OutputDescription;
                data.InputExample      = InputExample;
                data.OutputExample     = OutputExample;
                data.Hint               = Hint;
                data.Source             = Source;
                data.Author             = Author;
                data.AuthorizationGroup = UsergroupConvert.ConvertFromString(UserGroupName);
            }
        }
        /// <summary>
        /// 从给定的比赛句柄创建 ContestDetailModel 类的新实例。
        /// </summary>
        /// <param name="handle">比赛句柄。</param>
        /// <returns>从给定的比赛句柄创建的比赛详细信息数据模型对象。</returns>
        /// <exception cref="ArgumentNullException"/>
        public static ContestDetailModel FromContestHandle(ContestHandle handle)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            ContestDetailModel model = new ContestDetailModel();

            using (ContestDataProvider data = ContestDataProvider.Create(handle, true))
            {
                model.ContestId             = data.ContestId;
                model.Title                 = data.Title;
                model.Creator               = data.Creator;
                model.UsergroupName         = UsergroupConvert.ConvertToString(data.AuthorizationGroup);
                model.CreationTime          = data.CreationTime;
                model.StartTimeString       = data.StartTime.ToString("yyyy-MM-dd HH:mm:ss");
                model.EndTimeString         = data.EndTime.ToString("yyyy-MM-dd HH:mm:ss");
                model.AuthorizationModeName = ContestAuthorizationModeConvert.ConvertToString(data.AuthorizationMode);
                model.ParticipationModeName = ContestParticipationModeConvert.ConvertToString(data.ParticipationMode);
            }

            return(model);
        }