public async Task <IActionResult> ChangeEmailAddress([FromBody] UpdateEmailAddressViewModel model)
        {
            if (ModelState.IsValid)
            {
                var users = await _userManager.Users.Where(u => u.Email == model.OldEmailAddress || u.Email == model.NewEmailAddress).ToListAsync();

                if (users.Count > 1)
                {
                    return(BadRequest(Constants.Errors.DuplicateEmailAddressError));
                }
                var user = users.FirstOrDefault();
                if (user != null && user.Email != model.NewEmailAddress)
                {
                    var code = await _userManager.GenerateChangeEmailTokenAsync(user, model.NewEmailAddress);

                    var callbackUrl = Url.Action(nameof(ConfirmChangeEmail), "Account",
                                                 new { userId = user.Id, newEmail = model.NewEmailAddress, code }, HttpContext.Request.Scheme);
                    await _emailSender.SendEmailConfirmationAsync(model.NewEmailAddress, callbackUrl, false);

                    return(Ok());
                }
                return(NotFound(Constants.Errors.UserNotFoundError));
            }

            // If we got this far, something failed.
            return(BadRequest(Constants.Errors.InvalidInput));
        }
        public UpdateAddressMailPage(Addresses addresses)
        {
            InitializeComponent();
            var viewModel = new UpdateEmailAddressViewModel();

            viewModel.Addresses = addresses;
            BindingContext      = viewModel;
        }