Exemplo n.º 1
0
        //
        // GET: /Manage/ChangePhoneNumber
        public async Task <IActionResult> ChangePhoneNumber()
        {
            var user = await GetCurrentUserAsync();

            if (user == null)
            {
                return(View("Error"));
            }
            var model = new ChangePhoneNumberViewModel
            {
                OldPhoneNumber = user.PhoneNumber
            };

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> ChangePhoneNumber([FromRoute] string id, ChangePhoneNumberViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            string gamingHallId = this.service.GetHallId(id);

            await this.service.ChangePhoneNumberAsync(id, model.PhoneNumber);

            this.TempData["Message"] = "Employee Phone number successfully updated!";

            return(this.Redirect("/Employees/AllEmployees/" + gamingHallId));
        }
        public ActionResult ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            String user;

            user = HttpContext.User.Identity.GetUserName();
            AppUser f = db.Users.FirstOrDefault(x => x.UserName == user);

            f.PhoneNumber = model.NewPhoneNumber;
            db.SaveChanges();
            return(RedirectToAction("Index", "Accounts"));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (ModelState.IsValid)
            {
                var userWithPhoneNumber = await _userManager.FindUserByPhoneNumber(model.PhoneNumber);

                if (userWithPhoneNumber != null && userWithPhoneNumber.EmailConfirmed)
                {
                    ModelState.AddModelError(nameof(ChangePhoneNumberViewModel.PhoneNumber), "This phone number is already taken");
                }

                if (ModelState.ErrorCount == 0)
                {
                    if (!string.IsNullOrWhiteSpace(model.Code))
                    {
                        ViewData["SmsSent"] = true;
                        var result = await _userManager.ConfirmPhoneNumber(model.UserId, model.Code);

                        if (result)
                        {
                            return(Redirect("/profile"));
                        }

                        ModelState.AddModelError(nameof(ChangePhoneNumberViewModel.Code), "Invalid code.");
                        return(View(model));
                    }

                    var user = await _userManager.FindUserById(model.UserId);

                    var token = await _userManager.GenerateChangePhoneNumberToken(model.UserId, model.PhoneNumber);

                    var body   = $"Confirmation code: {token}";
                    var status = await _smsService.SendAsync(model.PhoneNumber, body);

                    if (status)
                    {
                        user.PhoneNumber = model.PhoneNumber;
                        await _userManager.UpdateUser(user);
                    }
                }
            }

            ViewData["SmsSent"] = false;
            return(View(model));
        }
Exemplo n.º 5
0
        public ActionResult ChangePhoneNumber()
        {
            string User_Id = User.Identity.GetUserId();
            User   user    = UserManager.FindById(User_Id);

            if (user == null)
            {
                return(HttpNotFound());
            }

            ChangePhoneNumberViewModel model = new ChangePhoneNumberViewModel
            {
                User_Id         = User_Id,
                Old_PhoneNumber = user.PhoneNumber
            };

            return(View(model));
        }
        public async Task <ActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            // Generate the token and send it
            var code = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), model.PhoneNumber);

            if (UserManager.EmailService != null)
            {
                var message = new IdentityMessage
                {
                    Destination = await UserManager.GetEmailAsync(User.Identity.GetUserId()),
                    Body        = "Mã xác minh thay đổi số điện thoại của bạn là: " + code
                };
                await UserManager.EmailService.SendAsync(message);
            }
            return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.PhoneNumber }));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = await GetCurrentUserAsync();

            if (user != null)
            {
                // Overwrites values in currently logged in user to match the new data
                user.PhoneNumber = model.PhoneNumber;
                // Saves changes
                _context.Update(user);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.ChangePhoneNumberSuccess }));
            }
            return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.Error }));
        }
Exemplo n.º 8
0
        public async Task <ActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var userId = User.Identity.GetUserId();

            var userObj = db.Users.FirstOrDefault(user => user.Id == userId);

            if (userObj == null)
            {
                return(HttpNotFound());
            }

            userObj.PhoneNumber = model.phoneNumber;
            await db.SaveChangesAsync();

            return(RedirectToAction("Index", new { Message = ManageMessageId.PhoneNumberChangedSuccess }));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = await GetCurrentUserAsync();

            if (user != null)
            {
                var result = await _userManager.SetPhoneNumberAsync(user, model.PhoneNumber);

                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.ChangePhoneSuccess }));
                }
            }
            return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.Error }));
        }
Exemplo n.º 10
0
        public async Task <ActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var result = await UserManager.SetPhoneNumberAsync(Guid.Parse(User.Identity.GetUserId()), model.PhoneNumber);

            if (result.Succeeded)
            {
                var user = await UserManager.FindByIdAsync(Guid.Parse(User.Identity.GetUserId()));

                if (user != null)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                }
                return(RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.PhoneNumber }));
            }
            AddErrors(result);
            return(View(model));
        }
Exemplo n.º 11
0
        public async Task <ActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            AppUser userLoggedIn = await _userManager.FindByNameAsync(User.Identity.Name);

            userLoggedIn.PhoneNumber = model.NewPhoneNumber;
            _db.SaveChanges();
            var result = await _userManager.UpdateAsync(userLoggedIn);

            if (result.Succeeded)
            {
                await _signInManager.SignInAsync(userLoggedIn, isPersistent : false);

                return(RedirectToAction("Index", "Home"));
            }
            AddErrors(result);
            return(View(model));
        }
Exemplo n.º 12
0
        public async Task <ActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel cpnvm)
        {
            //if user forgot a field, send them back to
            //change password page to try again
            if (ModelState.IsValid == false)
            {
                return(View(cpnvm));
            }

            AppUser userLoggedIn = await _userManager.FindByNameAsync(User.Identity.Name);

            userLoggedIn.PhoneNumber = cpnvm.PhoneNumber;

            //Find the logged in user using the UserManager
            //AppUser userLoggedIn = await _userManager.FindByNameAsync(User.Identity.Name);

            //Attempt to change the password using the UserManager
            var result = await _userManager.UpdateAsync(userLoggedIn);

            //if the attempt to change the password worked
            if (result.Succeeded)
            {
                //sign in the user with the new password
                await _signInManager.SignInAsync(userLoggedIn, isPersistent : false);

                //send the user back to the home page
                return(RedirectToAction("Index", "Home"));
            }
            else //attempt to change the password didn't work
            {
                //Add all the errors from the result to the model state
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }

                //send the user back to the change password page to try again
                return(View(cpnvm));
            }
        }
Exemplo n.º 13
0
        public /*async Task<*/ ActionResult /*>*/ ChangePhoneNumber(ChangePhoneNumberViewModel model)
        {
            if (ModelState.IsValid)
            {
                UserManager.ChangePhoneNumber(User.Identity.GetUserId(), model.OldNumber, model.NewNumber);
            }
            // Generate the token and send it
            //var code = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), model.Number);
            //if (UserManager.SmsService != null)
            //{
            //    var message = new IdentityMessage
            //    {
            //        Destination = model.Number,
            //        Body = "Your security code is: " + code
            //    };
            //    await UserManager.SmsService.SendAsync(message);
            //}
            //return RedirectToAction("VerifyPhoneNumber", new { PhoneNumber = model.Number });


            //UserManager.SetPhoneNumber(User.Identity.GetUserId(), model.Number);
            return(RedirectToAction("Index"));
        }
        public async Task <IActionResult> ChangePhoneNumber()
        {
            var epaoid = _contextAccessor.HttpContext.User.FindFirst("http://schemas.portal.com/epaoid")?.Value;

            try
            {
                var organisation = await _organisationsApiClient.GetEpaOrganisation(epaoid);

                var viewModel = new ChangePhoneNumberViewModel
                {
                    PhoneNumber = ModelState.IsValid
                        ? organisation.OrganisationData?.PhoneNumber
                        : ModelState[nameof(ChangePhoneNumberViewModel.PhoneNumber)]?.AttemptedValue
                };

                return(View(viewModel));
            }
            catch (EntityNotFoundException e)
            {
                _logger.LogWarning(e, "Failed to find organisation");
                return(RedirectToAction(nameof(HomeController.NotRegistered), nameof(HomeController).RemoveController()));
            }
        }
Exemplo n.º 15
0
        public async Task <ActionResult> ChangePhoneNumberView(ChangePhoneNumberViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var i = await UserManager.GenerateChangePhoneNumberTokenAsync(User.Identity.GetUserId(), model.NewPhoneNumber);

            var result = await UserManager.ChangePhoneNumberAsync(User.Identity.GetUserId(), model.NewPhoneNumber, i);

            if (result.Succeeded)
            {
                var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());

                if (user != null)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);
                }
                return(RedirectToAction("Index", new { Message = "PhoneNumber has changed!" }));
            }
            AddErrors(result);
            return(View(model));
        }
 public IViewComponentResult Invoke(ChangePhoneNumberViewModel viewModel) => View(viewModel);
        public async Task <IActionResult> ChangePhoneNumber(ChangePhoneNumberViewModel vm)
        {
            var epaoid = _contextAccessor.HttpContext.User.FindFirst("http://schemas.portal.com/epaoid")?.Value;

            try
            {
                var organisation = await GetEpaOrganisation(epaoid);

                if (organisation == null)
                {
                    return(RedirectToAction(nameof(HomeController.NotRegistered), nameof(HomeController).RemoveController()));
                }

                if (vm.ActionChoice == "Save")
                {
                    if (ModelState.IsValid)
                    {
                        if (string.Equals(vm.PhoneNumber, organisation.OrganisationData?.PhoneNumber))
                        {
                            return(RedirectToAction(nameof(OrganisationDetails)));
                        }

                        // only check if a phone number has been entered - model has required validator
                        if (await _validationApiClient.ValidatePhoneNumber(vm.PhoneNumber) == false)
                        {
                            ModelState.AddModelError(nameof(ChangePhoneNumberViewModel.PhoneNumber), "Enter a valid phone number");
                        }
                    }

                    if (!ModelState.IsValid)
                    {
                        return(RedirectToAction(nameof(ChangePhoneNumber)));
                    }

                    vm = new ChangePhoneNumberViewModel
                    {
                        PhoneNumber = vm.PhoneNumber
                    };

                    return(View("ChangePhoneNumberConfirm", vm));
                }
                else if (vm.ActionChoice == "Confirm")
                {
                    var userId  = _contextAccessor.HttpContext.User.FindFirst("UserId").Value;
                    var request = new UpdateEpaOrganisationPhoneNumberRequest
                    {
                        PhoneNumber    = vm.PhoneNumber,
                        OrganisationId = organisation.OrganisationId,
                        UpdatedBy      = Guid.Parse(userId)
                    };

                    var notifiedContacts = await _organisationsApiClient.UpdateEpaOrganisationPhoneNumber(request);

                    if (notifiedContacts == null)
                    {
                        throw new Exception("Unable to update phone number");
                    }

                    vm = new ChangePhoneNumberViewModel
                    {
                        PhoneNumber = vm.PhoneNumber,
                        Contacts    = notifiedContacts
                    };

                    return(View("ChangePhoneNumberUpdated", vm));
                }
            }
            catch (Exception e)
            {
                _logger.LogWarning(e, "Failed to update phone number");
                ModelState.AddModelError(nameof(ChangePhoneNumberViewModel.PhoneNumber), "Unable to update the contact phone number at this time.");
                return(RedirectToAction(nameof(ChangePhoneNumber)));
            }

            return(RedirectToAction(nameof(OrganisationDetails)));
        }
 public SubmitPhoneNumberCommand(ChangePhoneNumberViewModel viewModel)
 {
     changePhoneNumberViewModel = viewModel;
 }
Exemplo n.º 19
0
 public CancelPhoneNumberSubmissionCommand(ChangePhoneNumberViewModel viewModel)
 {
     changePhoneNumberViewModel = viewModel;
 }