public IActionResult ConfirmMobile()
        {
            // get name of user
            string UserId = _ius.GetId();

            ViewBag.fullname = _ius.GetById(UserId).FirstName + " " + _ius.GetById(UserId).LastName;
            // update wallet
            ViewBag.Wallet = _ius.GetById(UserId).Wallet;

            var userId = _ius.GetId();
            var query  = _ius.GetById(userId);

            if (query != null)
            {
                ConfirmPhoneViewModel model = new ConfirmPhoneViewModel
                {
                    IdUser               = query.Id,
                    FirstName            = query.FirstName,
                    LastName             = query.LastName,
                    PhoneNumber          = query.PhoneNumber,
                    PhoneNumberConfirmed = query.PhoneNumberConfirmed
                };
                _number = model.PhoneNumber;
                return(View(model));
            }

            string error = "صفحه مورد نظر یافت نشد";

            return(View("NotFounds", error));
        }
Exemple #2
0
        public ActionResult ConfirmPhone(string phoneNumber)
        {
            ConfirmPhoneViewModel vm = new ConfirmPhoneViewModel
            {
                PhoneNumber = phoneNumber
            };

            return(View(vm));
        }
        public IActionResult ConfirmMobile(ConfirmPhoneViewModel model)
        {
            // get name of user
            string UserId = _ius.GetId();

            ViewBag.fullname = _ius.GetById(UserId).FirstName + " " + _ius.GetById(UserId).LastName;
            // update wallet
            ViewBag.Wallet = _ius.GetById(UserId).Wallet;

            if (ModelState.IsValid)
            {
                try
                {
                    // تایید کد وارد شده
                    int codeOtp = Convert.ToInt32(model.CodeOTP);
                    // کد درست است
                    if (codeOtp == _codeOTP)
                    {
                        // تایید شماره در دیتابیس
                        var userId = _ius.GetId();
                        var query  = _ius.GetById(userId);

                        if (query != null)
                        {
                            _iups.ConfirmMobile(query);
                            _iups.save();
                            // نمایش تاییدیه
                            ConfirmPhoneViewModel u = new ConfirmPhoneViewModel
                            {
                                IdUser               = query.Id,
                                FirstName            = query.FirstName,
                                LastName             = query.LastName,
                                PhoneNumber          = query.PhoneNumber,
                                PhoneNumberConfirmed = query.PhoneNumberConfirmed
                            };
                            _number = u.PhoneNumber;

                            ViewBag.confirmChecked = "شماره موبایل تایید شد";
                            return(View(u));
                        }
                    }
                }
                catch
                {
                    // کاراکتر وارد شده غیر عدد است
                    ViewBag.confirmWrong = "کد وارد شده اشتباه است";
                    return(View(model));
                }
            }

            return(View(model));
        }
        public async Task <IActionResult> ConfirmPhone([FromBody] ConfirmPhoneViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var appUser = await userManager.FindByNameAsync(model.Email);

            if (appUser == null)
            {
                return(NotFound(model.Email));
            }
            if (appUser.PhoneNumberConfirmed)
            {
                var message = $"{model.Email} phone is already confirmed.";
                ModelState.AddModelError(string.Empty, message);
                logger.LogError(message);
                return(BadRequest(ModelState));
            }

            var changeResult = await userManager.ChangePhoneNumberAsync(appUser, model.Phone, model.Code);

            if (!changeResult.Succeeded)
            {
                changeResult.Errors.ToList().ForEach(x => {
                    logger.LogWarning($"{model.Email} phone confirmation failed: {x.Description}.");
                    ModelState.AddModelError(string.Empty, x.Description);
                });
                return(BadRequest(ModelState));
            }

            var passwordResetToken = await userManager.GeneratePasswordResetTokenAsync(appUser);

            if (string.IsNullOrWhiteSpace(passwordResetToken))
            {
                logger.LogError($"Password change token creation for user {appUser.Email} failed.");
                throw new PasswordChangeTokenNotCreatedException(appUser.Email);
            }
            var phoneConfirmationResult = new PhoneConfirmationResult
            {
                Token = passwordResetToken
            };

            return(Ok(phoneConfirmationResult));
        }
Exemple #5
0
        public async Task <IActionResult> ConfirmPhone(ConfirmPhoneViewModel confirmPhoneViewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var verification = await VerificationCheckResource.CreateAsync(
                        to : confirmPhoneViewModel.PhoneNumber,
                        code : confirmPhoneViewModel.VerificationCode,
                        pathServiceSid : _settings.VerificationServiceSID
                        );

                    if (verification.Status == "approved")
                    {
                        var identityUser = await _userManager.GetUserAsync(User);

                        identityUser.PhoneNumberConfirmed = true;
                        var updateResult = await _userManager.UpdateAsync(identityUser);

                        if (updateResult.Succeeded)
                        {
                            return(RedirectToAction("ConfirmPhoneSuccess"));
                        }
                        else
                        {
                            ModelState.AddModelError("", "There was an error confirming the verification code, please try again");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", $"There was an error confirming the verification code: {verification.Status}");
                    }
                }
                catch (Exception)
                {
                    ModelState.AddModelError("",
                                             "There was an error confirming the code, please check the verification code is correct and try again");
                }
            }
            return(View(confirmPhoneViewModel));
        }
Exemple #6
0
        public async Task <IActionResult> ConfirmPhoneNumber(ConfirmPhoneViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var result =
                await _identityService.ConfirmPhoneAsync(CurrentUserService.UserId, model.PhoneNumber, model.Token);

            if (result)
            {
                var command = new ConfirmPhoneNumberCommand {
                    PhoneNumber = model.PhoneNumber
                };
                await Mediator.Send(command);

                return(RedirectToAction("Index"));
            }

            ModelState.AddModelError("Token", "کد وارد شده معتبر نیست");
            return(View(model));
        }