public async Task <IActionResult> SignupAsync([FromBody] User user)
        {
            try
            {
                var userId = _userRepository.RegisterUser(user).Result;

                if (userId == string.Empty)
                {
                    return(Forbid($"Username {user.UserName} already exists"));
                }

                //Send activation email
                var token   = _userRepository.GenerateActivationTokenUrl(user).Result;
                var mailJet = new MailjetManager(_configuration);
                await mailJet.SendAccountActivationEmailAsync(user, token);

                return(Ok());
            }
            catch (Exception e)
            {
                _logger.LogError($"Exception thrown while registering new user: {e.Message}");
            }

            return(BadRequest("Unable to Register user"));
        }
Exemple #2
0
        public async Task <IActionResult> ProcessForgotPassword([FromBody] User user)
        {
            try
            {
                var dbUser = _userRepository.GetUserByUsername(user.UserName);
                if (dbUser == null)
                {
                    //For security, don't let user know if the provided username is invalid
                    return(Ok());
                }

                var token   = _userRepository.GeneratePasswordResetTokenUrl(dbUser).Result;
                var mailJet = new MailjetManager(_configuration);
                await mailJet.SendPasswordResetEmailAsync(dbUser, token);

                return(Ok());
            }
            catch (Exception e)
            {
                _logger.LogError($"Exception thrown while user login: {e.Message}");
            }

            return(BadRequest("Unable to update user password"));
        }