public async Task <IActionResult> SetupAccount(AgentSetupAccountViewModel agentSetupAccountViewModel)
        {
            if (ModelState.IsValid)
            {
                await _service.SetupAccount(User, agentSetupAccountViewModel);

                return(RedirectToAction("RequestPayment", "Payment"));
            }

            return(View(agentSetupAccountViewModel));
        }
        public async Task <IActionResult> Edit(string userName, AgentSetupAccountViewModel agentSetupAccountViewModel)
        {
            IActionResult result = View("SetupAccount", agentSetupAccountViewModel);

            if (ModelState.IsValid)
            {
                await _service.Update(User, userName, agentSetupAccountViewModel);

                result = RedirectToAction("List", "Agent");
            }

            return(result);
        }
        public async Task SetupAccount(IEntryAgentsUser user, AgentSetupAccountViewModel agentSetupAccountViewModel)
        {
            var agent = await _agentManager.Edit(user.UserName, agentSetupAccountViewModel);

            // TODO: update email after verification
            // TODO: update username
            // https://stackoverflow.com/questions/36367140/aspnet-core-generate-and-change-email-address
            if (agent.Email != agentSetupAccountViewModel.Email)
            {
                agent.Email    = agentSetupAccountViewModel.Email;
                agent.UserName = agentSetupAccountViewModel.Email;
                await _userManager.UpdateAsync(agent);

                await _signInManager.RefreshSignInAsync(agent);

                //await _signInManager.SignInAsync(agent, true);
                //var token = await _userManager.GenerateChangeEmailTokenAsync(agent, agentSetupAccountViewModel.Email);
                //await _userManager.ChangeEmailAsync(agent, agentSetupAccountViewModel.Email, token);
            }
        }
 public async Task Update(IEntryAgentsUser user, string userName, AgentSetupAccountViewModel agentSetupAccountViewModel)
 {
     await _agentManager.Edit(userName, agentSetupAccountViewModel);
 }