public ActionResult EmailVerification(EmailVerificationModel model) { try { if (ModelState.IsValid) { using (var context = new JustHallAtumationEntities()) { var registration = context.RegistrationForms.Where(x => x.UserName.Replace(" ", "") == model.UserName.Replace(" ", "") && x.Verification.Replace(" ", "") == model.VerificationCode.Replace(" ", "") && x.IsVerified == 2).FirstOrDefault(); if (registration != null) { registration.IsVerified = 0; /// Eamil Is verified Wait for 1 ( Hall Provost ) context.SaveChanges(); ViewBag.Success = "Successfully Verified Your Email\n Wait For Accepted by Hall Admin...."; } else { ViewBag.Success = "User Name or Verification Code is Wrong...."; } } ModelState.Clear(); } return(View()); } catch (Exception ex) { return(View(ex)); } }
public IActionResult VerifyEmail(EmailVerificationModel verificationModel) { var userCode = _userCodeService.GetUserCode(verificationModel.Code, UserCodeType.EmailOtp); if (userCode == null || userCode.User.Email != verificationModel.Email || !IsCodeValid(userCode) || verificationModel.Code != userCode.Code) { return(R.Fail.With("error", T("The code is invalid or expired")).Result); } userCode.User.Active = true; _userService.Update(userCode.User); //delete the user code _userCodeService.Delete(userCode); RaiseEvent(NamedEvent.UserActivated, userCode.User); //and signin the current user var loginStatus = ApplicationEngine.SignIn(userCode.User.Email, userCode.User.Name, false, verificationModel.Token); //get api token if it was requested var token = ApplicationEngine.CurrentHttpContext.GetApiToken(); if (loginStatus == LoginStatus.Success) { return(R.Success.With("token", token).Result); } return(R.Fail.With("message", T("An error occured while login")).Result); }
public async Task AddCustomer_Old_ReturnFalseAsync() { //Arrange var customerModel = new CustomerModel() { FirstName = "Rachelly", LastName = "Lamberger", Email = "*****@*****.**", Password = "******", }; var emailVerificationModel = new EmailVerificationModel() { VerificationCode = 1234, Email = "*****@*****.**", }; var verificationHelperModel = new VerificationHelperModel() { Customer = customerModel, EmailVerification = emailVerificationModel }; //Act var result = await _service.AddCustomer(verificationHelperModel); //Assert Assert.False(result); }
public async System.Threading.Tasks.Task AddCustomer_New_ReturnTrueAsync() { //Arrange var customerModel = new CustomerModel() { FirstName = "Rachelly", LastName = "Lamberger", Email = "*****@*****.**", Password = "******", }; var emailVerificationModel = new EmailVerificationModel() { VerificationCode = 1234, Email = "*****@*****.**", }; var verificationHelperModel = new VerificationHelperModel() { Customer = customerModel, EmailVerification = emailVerificationModel }; //Act var result = await _service.AddCustomer(verificationHelperModel); //Assert Assert.True(result); }
public async Task RegisterAsync(UserModel newUser, string password, string verificationCode) { //double check user does not exist in case function is called in some other way. bool isUserExist = await _userRepository.IsExistsAsync(newUser.Email); if (isUserExist) { throw new UserWithRequestedEmailAlreadyExistsException(newUser.Email); } EmailVerificationModel verification = await _userRepository.GetVerificationCodeAsync(newUser.Email); if (verification.Code != verificationCode) { throw new IncorrectVerificationCodeException(verificationCode); } if (verification.ExpirationTime < DateTime.Now) { throw new VerificationCodeExpiredException(verification.ExpirationTime); } string passwordSalt = _passwordHasher.CreateSalt(); string passwordHash = _passwordHasher.CreatePasswordHash(password, passwordSalt); newUser.PasswordHash = passwordHash; newUser.PasswordSalt = passwordSalt; newUser.IsAdmin = false; newUser.Address.Id = Guid.NewGuid(); await _userRepository.AddAsync(newUser); Log.Information("User with email {@email} created successfully", newUser.Email); }
public async Task <IActionResult> VerifyEmail([FromBody] EmailVerificationModel model) { var user = await this.userManager.FindByNameAsync(model.Username); if (user != null) { user.EmailConfirmed = true; _ctx.SaveChanges(); return(Ok()); } return(BadRequest()); }
public async Task AddVerificationAsync(EmailVerificationModel emailVerification) { bool isUserExist = await _userRepository.IsExistsAsync(emailVerification.Email); if (isUserExist) { throw new UserWithRequestedEmailAlreadyExistsException(emailVerification.Email); } string verificationCode = _emailVerifier.GenerateVerificationCode(); emailVerification.Code = verificationCode; await _userRepository.AddVerificationCodeAsync(emailVerification); await _emailVerifier.SendVerificationEmailAsync(emailVerification.Email, verificationCode); }
public async Task AddVerificationCodeAsync(EmailVerificationModel emailVerification) { EmailVerification verification = _mapper.Map <EmailVerification>(emailVerification); bool isEmailExist = await _userDbContext.EmailVerifications .AnyAsync(v => v.Email == verification.Email); if (isEmailExist == false) { await _userDbContext.EmailVerifications.AddAsync(verification); } else { EmailVerification verificationToUpdate = await _userDbContext.EmailVerifications .Where(verification => verification.Email == emailVerification.Email) .FirstOrDefaultAsync(); verificationToUpdate.Code = verification.Code; verificationToUpdate.ExpirationTime = DateTime.Now.AddMinutes(200); } await _userDbContext.SaveChangesAsync(); }
public async Task <IActionResult> EmailVerification(string email) { var model = new EmailVerificationModel() { Username = email }; var _apiUrl = this.configuration["BaseUrl"]; HttpClient client = new HttpClient(); var content = JsonConvert.SerializeObject(model); var buffer = System.Text.Encoding.UTF8.GetBytes(content); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await client.PostAsync(_apiUrl + "api/account/VerifyEmail", byteContent); if (response.IsSuccessStatusCode) { return(View()); } return(View("Index")); }
//check neccesity of from body public async Task VerifyEmailAsync(EmailVerificationDTO emailVerificationDTO) { EmailVerificationModel emailVerification = _mapper.Map <EmailVerificationModel>(emailVerificationDTO); await _userService.AddVerificationAsync(emailVerification); }