Ejemplo n.º 1
0
 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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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();
        }
Ejemplo n.º 9
0
        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);
 }