Example #1
0
        public async Task <IResponseDTO> ResetPassword(ResetPasswordParamsDto options)
        {
            try
            {
                if (string.IsNullOrEmpty(options.Email))
                {
                    _response.Errors.Add("Email is not found");
                    _response.IsPassed = false;
                    return(_response);
                }
                else if (string.IsNullOrEmpty(options.Token))
                {
                    _response.Errors.Add("Token is not valid");
                    _response.IsPassed = false;
                    return(_response);
                }

                var appUser = await _userManager.FindByEmailAsync(options.Email.Trim());

                if (appUser == null)
                {
                    _response.Errors.Add("Email is not found");
                    _response.IsPassed = false;
                    return(_response);
                }
                else if (appUser.Status == UserStatusEnum.Locked.ToString())
                {
                    _response.Errors.Add("Your Account is locked. Please contact your administration");
                    _response.IsPassed = false;
                    return(_response);
                }
                else if (appUser.Status == UserStatusEnum.NotActive.ToString())
                {
                    _response.Errors.Add("Your Account is disabled. Please contact your administration");
                    _response.IsPassed = false;
                    return(_response);
                }

                // appUser.IsPasswordSet = true;
                var result = await _userManager.ResetPasswordAsync(appUser, options.Token, options.NewPassword);

                if (!result.Succeeded)
                {
                    _response.IsPassed = false;
                    _response.Errors   = result.Errors.Select(x => x.Description).ToList();
                    return(_response);
                }

                _response.IsPassed = true;
                _response.Message  = "Your password is setted successfully";
            }
            catch (Exception ex)
            {
                _response.IsPassed = false;
                _response.Message  = $"Error: {ex.Message} Details: {ex.InnerException?.Message}";
                return(_response);
            }

            return(_response);
        }
Example #2
0
        public async Task <IResponseDTO> ResetPassword([FromBody] ResetPasswordParamsDto options)
        {
            _response = await _accountService.ResetPassword(options);

            return(_response);
        }