예제 #1
0
        public async Task <IActionResult> ConfirmEmail(string userId, string code)
        {
            if (userId == null || code == null)
            {
                return(RedirectToAction(nameof(AccountController.Login), "Account"));
            }

            var user = await _userManager.FindByIdAsync(userId);

            if (user == null)
            {
                throw new ApplicationException($"Não foi encontrado o Usuário com ID: '{userId}'.");
            }

            var result = await _userManager.ConfirmEmailAsync(user, code);

            if (!result.Succeeded)
            {
                throw new ApplicationException($"Erro ao confirmar conta do Usuário com ID: '{userId}'.");
            }

            var confirm = new AspNetUserUpdade().DateAccountConfirm(user.Id);

            if (confirm != null)
            {
                throw new ApplicationException($"Erro ao confirmar conta do Usuário com ID: \"{userId}\" - Erro: { confirm.Value }.");
            }


            return(View(result.Succeeded ? "ConfirmEmail" : "Error"));
        }
예제 #2
0
        public async Task <IActionResult> Index(IndexViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                model.StatusMessage = "Usuário não encontrado";
                return(View(model));
            }

            var email = user.Email;

            if (model.Email != email)
            {
                var setEmailResult = await _userManager.SetEmailAsync(user, model.Email.ToLower());

                if (!setEmailResult.Succeeded)
                {
                    model.StatusMessage = "Erro ao setar e-mail";
                    return(View(model));
                }
            }

            var retorno = new AspNetUserUpdade().Save(UserId, model);

            if (!retorno.Valido)
            {
                foreach (var item in retorno.Mensagens)
                {
                    ModelState.AddModelError(string.Empty, item);
                }

                model.StatusMessage = "Erro ao alterar dados do usuário";
                return(View(model));
            }

            StatusMessage = "Perfil alterado com sucesso!";
            return(RedirectToAction(nameof(Index)));
        }