コード例 #1
0
        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);
        }
コード例 #2
0
        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 })));
        }