public async Task <ActionResult> RegisterAsync(EmailRegisterViewModel model) { if (ModelState.IsValid) { string userid = GetRandomUserNumber(); if (string.IsNullOrEmpty(userid)) { ModelState.AddModelError("", "账号池可注册账号为空,系统暂不允许注册,请联系管理员解决"); return(View(model)); } var userinfo = db.UserNumbers.Where(u => u.UserId == userid).FirstOrDefault(); if (userinfo == null || userinfo.State != (int)EnumState.未使用) { ModelState.AddModelError("", "账号池可注册账号为空,系统暂不允许注册,请联系管理员解决"); return(View(model)); } AppUser user = new AppUser() { Email = model.Email, UserName = userinfo.UserId }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { userinfo.UserName = userinfo.UserId; userinfo.CreateDate = DateTime.Now; userinfo.State = (int)EnumState.正常; userinfo.Gender = model.Gender; if (model.Gender == (int)Gender.女) { userinfo.HeadImg = "Content/images/head1.png"; } else { userinfo.HeadImg = "Content/images/head2.png"; } db.SaveChanges(); if (userinfo.UserId == "Admin") { await UserManager.AddToRoleAsync(user.Id, "Admin"); } //return RedirectToAction("Login"); string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, "确认你的帐户", "请通过单击 <a href=\"" + callbackUrl + "\">这里</a>来确认你的帐户"); return(RedirectToAction("RegisterConfirm", new { Email = model.Email })); } } return(View(model)); }
public async Task <IActionResult> Register(int id) { var ceClass = _repo.GetClassById(id); if (ceClass.RegisteredAgents.Count() < ceClass.MaxSize) { var currentUser = await _userManager.GetUserAsync(HttpContext.User); ceClass.RegisteredAgents.Add(new RegisteredAgent { AppUser = currentUser, CEClass = ceClass }); var emailRegisterViewModel = new EmailRegisterViewModel(ceClass); _emailSender.SendEmailAsync("*****@*****.**", $"Registered for {ceClass.ClassTitle}", "RegisteredClass", emailRegisterViewModel); _repo.SaveChanges(); } return(Redirect("/CEClass/Classes")); }
public async Task <IActionResult> Unregister(int id) { var ceClass = _repo.GetClassById(id); var currentUser = await _userManager.GetUserAsync(HttpContext.User); var registeredAgents = _repo.GetRegisteredAgents(); foreach (var r in registeredAgents.ToList()) { if (r.AppUserId == currentUser.Id && r.CEClassId == ceClass.Id) { _repo.RemoveRegisteredAgent(r); var emailRegisterViewModel = new EmailRegisterViewModel(ceClass); _emailSender.SendEmailAsync("*****@*****.**", $"Unregistered for {ceClass.ClassTitle}", "UnregisteredClass", emailRegisterViewModel); break; } } _repo.SaveChanges(); return(Redirect("/CEClass/Classes")); }