/// <summary>
        /// Envia token de confirmação para reset de senha.
        /// </summary>
        /// <param name="userReactivate"></param>
        /// <param name="callback"></param>
        public async Task <bool> SendReactivationEmail(UserReactivateAccountView userReactivate, string callback)
        {
            if (_authenticatedUser.IsAuthenticated())
            {
                return(false);
            }
            User user = await _userManager.FindByEmailAsync(userReactivate.Email);

            if (!user.Deleted)
            {
                return(false);
            }

            bool checkPass = await _userManager.CheckPasswordAsync(user, userReactivate.Password);

            if (checkPass)
            {
                var token = await CreateTokenEmailConfirmation(user);

                var bodyMessage =
                    CreateBodyEmail(Messages.AccountReActivation, user.FullName, callback, user.Email, token);
                await _emailService.SendEmailAsync(user.FullName, user.Email, "Account Re-activation.", bodyMessage);
            }
            return(true);
        }
Exemple #2
0
        public async Task <IActionResult> SendReactivationEmail(UserReactivateAccountView user)
        {
            string callback = Url.Action(nameof(Activate), "User", null, Request.Scheme);
            var    result   = await _service.SendReactivationEmail(user, callback);

            if (result)
            {
                return(Ok(new
                {
                    result = "Reactivation email sent.",
                    message = "Waiting for confirmation."
                }));
            }
            return(Ok(new
            {
                result = "Failed.",
                message = "Non-inactive user."
            }));
        }