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