Example #1
0
        public async Task <IResponseDTO> ChangePassword(int userId, ChangePasswordParamsDto options)
        {
            try
            {
                if (string.IsNullOrEmpty(options.CurrentPassword))
                {
                    _response.Errors.Add("Currnet password should not be empty");
                    _response.IsPassed = false;
                    return(_response);
                }
                else if (string.IsNullOrEmpty(options.NewPassword))
                {
                    _response.Errors.Add("New password should not be empty");
                    _response.IsPassed = false;
                    return(_response);
                }

                var appUser = await _userManager.FindByIdAsync(userId.ToString());

                if (appUser == null)
                {
                    _response.Errors.Add("User 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);
                }

                var result = await _userManager.ChangePasswordAsync(appUser, options.CurrentPassword, 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 changed 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> ChangePassword([FromBody] ChangePasswordParamsDto options)
        {
            _response = await _accountService.ChangePassword(LoggedInUserId, options);

            return(_response);
        }