public async Task <ServiceResponse <bool> > ChangePassword(ChangePasswordModel model) { var response = new ServiceResponse <bool>(); try { var validation = new ChangePasswordModelValidator(model); var results = validation.Validate(model); response.ErrorMessages = results.Errors.ToList(); if (response.Successful) { var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var user = await _userManager.FindByIdAsync(userId); var result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); response.Data = result.Succeeded; } } catch (Exception ex) { response.ErrorMessages.Add(new ValidationFailure(string.Empty, ex.Message)); } return(response); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var validator = new ChangePasswordModelValidator(); var result = validator.Validate(this); return(result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] { item.PropertyName }))); }