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);
        }
        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);
            }
        }