public ActionResult Confirmation(RegistrationConfirmationViewModel model) { if (ModelState.IsValid) { try { using (var scope = new UnitOfWorkScope()) { User user = _repository.GetUserByUsername(model.UserName); if (user.UserName != model.UserName || user.RegistrationCode != model.Code) { ModelState.AddModelError("UserName", "Невалидно корисничко име или код!"); } else { user.IsActive = true; _repository.Update(user); scope.Commit(); CreateAuthTicket(user, true); return(Json(true)); } } } catch (Exception ex) { ModelState.AddModelError(string.Empty, "Во моментов системот има технички проблеми.<br/>Обидете се повторно за некоја минута"); Log.Error(ex); } } throw base.CreateModelException(model); }
public override void Given() { RegistrationConfirmationViewModel = new RegistrationConfirmationViewModel { UniqueLearnerNumber = "987654321" }; CacheService.GetAndRemoveAsync <RegistrationConfirmationViewModel>(Arg.Any <string>()).Returns(RegistrationConfirmationViewModel); }
GetRegistrationConfirmation() { var model = new RegistrationConfirmationViewModel(); var code = StateContext.Data[CodeKey] as string; var userId = StateContext.Data[UserIdKey] as string; model.IsRegistration = StateContext.Data[IsValidationReminderKey] as bool? ?? false; if ((code == null) || (userId == null)) { return(model); } // DEMO-ONLY model.IsDemo = true; model.ConfirmationLink = GetEmailVerificationRedirectUrl(code, userId); return(model); }
public async Task <IActionResult> RegistrationConfirmation(string userId, string code) { var model = new RegistrationConfirmationViewModel(); if (userId == null || code == null) { return(RedirectToAction( actionName: "Login", controllerName: "Authentication" )); } var user = await _userManager.FindByIdAsync(userId); if (user == null) { return(NotFound($"Unable to load user with ID '{userId}'.")); } var result = await _userManager.ConfirmEmailAsync(user, code); if (!result.Succeeded) { //throw new InvalidOperationException($"Error confirming email for user with ID '{userId}':"); foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } model.ShowInvalid = true; } else { //Login User await _signInManager.SignInAsync(user : user, isPersistent : false); } return(View(model)); }
public async Task <ActionResult> Register(RegisterUserViewModel submitedModel) { if (submitedModel.Username != null) { if (!submitedModel.Username.ToLower().Contains("sdbs")) { ModelState.AddModelError("", "Registrace je umožněna prozatím pouze členům SDBS"); return(View(submitedModel)); } } ViewBag.Title = GeneralResources.Registration; bool success = false; bool unknownError = false; ApplicationUser user = null; if (ModelState.IsValid) { using (ApplicationDbContext context = new ApplicationDbContext()) { Org registeringOrg = null; #region Get org (invitation/registration) if (submitedModel.IsInvited) { var invitation = from inv in context.Invitations where inv.Code == submitedModel.InvitationCode select inv; if (invitation.Count() != 1 || invitation.FirstOrDefault().Accepted) { unknownError = true; } else { submitedModel.Email = invitation.FirstOrDefault().Email; registeringOrg = invitation.FirstOrDefault().Org; invitation.FirstOrDefault().Accepted = true; } } else { unknownError = true; var cookie = Request.Cookies["RegisteringOrgID"]; if (cookie != null) { int registeringOrgID; if (int.TryParse(cookie.Value, out registeringOrgID)) { var registeringOrgQuerry = from org in context.Orgs where org.OrgID == registeringOrgID select org; if (registeringOrgQuerry.Count() == 1) { registeringOrg = registeringOrgQuerry.FirstOrDefault(); unknownError = false; } } } } #endregion //Existing Org if (!unknownError) { #region User name and email unique validation { bool modelStateError = false; var existingUserEmail = from usr in context.Users where usr.Email == submitedModel.Email.Trim() select usr; if (existingUserEmail.Any()) { modelStateError = true; ModelState.AddModelError("Email", AccountResources.AlreadyExistsEmailError); } var existingUserUsername = from usr in context.Users where usr.UserName == submitedModel.Username.Trim() select usr; if (existingUserUsername.Any()) { modelStateError = true; ModelState.AddModelError("Username", AccountResources.AlreadyExistsUsernameError); } if (modelStateError) { return(View(submitedModel)); } } #endregion //var appUsername = JosefinaIdentityManager.GetMUUsername(registeringOrgQuerry.FirstOrDefault().Name, submitedModel.Username.Trim()); user = new ApplicationUser(); if (submitedModel.IsInvited) { user.EmailConfirmed = true; } else { Random random = new Random(); int emailConfirmationCode; bool isUnique = false; do { emailConfirmationCode = random.Next(10000, 1000000000); var duplicitUserConfirmation = from usr in context.Users where usr.EmailConfirmationCode == emailConfirmationCode select usr; isUnique = !duplicitUserConfirmation.Any(); }while (!isUnique); user.EmailConfirmationCode = emailConfirmationCode; user.EmailConfirmed = false; } user.Email = submitedModel.Email.Trim().ToLower(); user.UserName = submitedModel.Username.Trim(); user.OrgID = registeringOrg.OrgID; IdentityResult result = await UserManager.CreateAsync(user, submitedModel.Password); if (result.Succeeded && !string.IsNullOrEmpty(user.Id)) { success = true; context.SaveChanges(); } else { unknownError = true; } } else { unknownError = true; } } if (success) { IUserMailer userMailer = new UserMailer(); var confirmationModel = new RegistrationConfirmationViewModel(); if (!submitedModel.IsInvited) { var email = userMailer.EmailConfirmation(user.EmailConfirmationCode, user.Email); email.SendAsync(); confirmationModel.ConfirmationOrg = AccountResources.DialogSuccesfullyRegisteredOrgBody; confirmationModel.ConfirmationMessage = AccountResources.DialogSuccesfullStartMessage; } else { confirmationModel.ConfirmationMessage = AccountResources.DialogSuccesfullStartMessageInvitation; } confirmationModel.ConfirmationUser = AccountResources.DialogSuccesfullyRegisteredUser; confirmationModel.Header = AccountResources.DialogSuccesfullRegistration; confirmationModel.IsOrgRegistered = !submitedModel.IsInvited; ViewBag.Body = AccountResources.DialogSuccesfullRegistration; return(View("RegistrationConfirmation", confirmationModel)); //return RedirectToAction("Home", "OrgController"); } else if (unknownError) { return(View("~/Views/Shared/Error.cshtml")); } else { // If we got this far, something failed, redisplay form return(View(submitedModel)); } } return(View(submitedModel)); }
public RegistrationConfirmationViewModel GetRegistrationConfirmation() { var model = new RegistrationConfirmationViewModel(); var code = StateContext.Data[CodeKey] as string; var userId = StateContext.Data[UserIdKey] as string; model.IsRegistration = StateContext.Data[IsValidationReminderKey] as bool? ?? false; if ((code == null) || (userId == null)) return model; // DEMO-ONLY model.IsDemo = true; model.ConfirmationLink = GetEmailVerificationRedirectUrl(code, userId); return model; }