public async Task <IActionResult> VerifyPhone(VerifyPhoneViewModel verifyPhone)
        {
            //var recaptcha = await _recaptcha.Validate(Request);
            //if (!recaptcha.success)
            //{
            //    ModelState.AddModelError("Recaptcha", "There was an error validating recatpcha. Please try again!");
            //    return View(!ModelState.IsValid ? verifyPhone : new VerifyPhoneViewModel());
            //}

            if (ModelState.IsValid)
            {
                if (_repository.VerifyPhone(verifyPhone) == "success")
                {
                    SetPasswordViewModel setPassword = new SetPasswordViewModel()
                    {
                        Phone = verifyPhone.Phone
                    };

                    return(View("SetPassword", setPassword));
                }
                else
                {
                    ViewData["Message"] = "کد وارد شده صحیح نمی باشد";
                }
                return(View());
            }
            return(View());
        }
Пример #2
0
        public ActionResult VerifyPhone(GetVerifyPhoneRequest request)
        {
            var model = new VerifyPhoneViewModel(
                request.TokenId,
                request.CallbackUri,
                request.Code,
                request.IsInvalidCode);

            return(View("~/OAuth/Views/VerifyPhone.cshtml", model));
        }
        public async Task <IActionResult> Login(LoginViewModel login)
        {
            //var recaptcha = await _recaptcha.Validate(Request);
            //if (!recaptcha.success)
            //{
            //    ModelState.AddModelError("Recaptcha", "There was an error validating recatpcha. Please try again!");
            //    return View(!ModelState.IsValid ? login : new LoginViewModel());
            //}

            var result = _repository.Login(login);

            switch (result.Message)
            {
            case "password":
                SetPasswordViewModel setPassword = new SetPasswordViewModel();
                setPassword.Phone = login.Phone;
                return(View("SetPassword", setPassword));

            case "confirm":
                VerifyPhoneViewModel verifyPhoneNumber = new VerifyPhoneViewModel();
                verifyPhoneNumber.Phone = login.Phone;
                return(View("VerifyPhone", verifyPhoneNumber));

            case "fail":
                ViewData["Message"] = "نام کاربری یا کلمه عبور اشتباه است";
                return(View());

            case "notexist":
                ViewData["Message"] = "نام کاربری یا کلمه عبور اشتباه است";
                return(View());

            default:
                var claims = new List <Claim>
                {
                    new Claim(ClaimTypes.Name, result.Id.ToString()),
                    new Claim(ClaimTypes.Role, result.Role),
                    new Claim("fullname", result.FullName),
                    new Claim("avatar", result.Avatar),
                    new Claim("id", result.Id.ToString())
                };

                var userIdentity = new ClaimsIdentity(claims, "login");

                ClaimsPrincipal principal = new ClaimsPrincipal(userIdentity);
                await HttpContext.SignInAsync(principal);

                return(RedirectToAction("Profile", "Account"));
            }
        }
        public IActionResult ResetPassword(string phoneNumber)
        {
            var result = _repository.ResetPassword(phoneNumber);

            if (result == "confirm")
            {
                VerifyPhoneViewModel verifyPhoneNumber = new VerifyPhoneViewModel();
                verifyPhoneNumber.Phone = phoneNumber;
                return(View("VerifyPhone", verifyPhoneNumber));
            }
            else
            {
                ViewData["Message"] = "شماره همراه وارد شده وجود ندارد";
                return(View());
            }
        }
        public string VerifyPhone(VerifyPhoneViewModel verifyPhone)
        {
            var user = (from u in _dbContext.Users
                        where u.PhoneNumber == verifyPhone.Phone
                        select u).FirstOrDefault();

            if (user != null && user.PhoneNumberVerifyCode == verifyPhone.VerifyCode)
            {
                user.PhoneNumberConfirmed = true;
                _dbContext.Update(user);
                _dbContext.SaveChangesAsync();
                return("success");
            }
            else
            {
                return("fail");
            }
        }
        public async Task <IActionResult> Register(RegisterViewModel register)
        {
            //var recaptcha = await _recaptcha.Validate(Request);
            //if (!recaptcha.success)
            //{
            //    ModelState.AddModelError("Recaptcha", "There was an error validating recatpcha. Please try again!");
            //    return View(!ModelState.IsValid ? register : new RegisterViewModel());
            //}

            if (ModelState.IsValid)
            {
                if (register.ParticipantType == "Participant" || register.ParticipantType == "Supporter" || register.ParticipantType == "Expert")
                {
                    VerifyPhoneViewModel verifyPhoneNumber = new VerifyPhoneViewModel();

                    var result = _repository.AddUser(register);
                    if (result == "added" || result == "confirm")
                    {
                        verifyPhoneNumber.Phone = register.PhoneNumber;
                        return(View("VerifyPhone", verifyPhoneNumber));
                    }
                    else if (result == "password")
                    {
                        SetPasswordViewModel setPassword = new SetPasswordViewModel();
                        setPassword.Phone = register.PhoneNumber;
                        return(View("SetPassword", setPassword));
                    }

                    else
                    {
                        ViewData["Message"] = "این شماره ثبت شده است.";
                    }
                    return(View());
                }
                else
                {
                    ViewData["Message"] = "خطایی رخ داده مجدد سعی نمایید";
                    return(View());
                }
            }
            return(View());
        }