public Response ChangePassword(ChangePasswordRequest request) { _logger.LogInfo("Method ChangePassword started at: " + DateTime.Now); var vr = _validator.Validate(request); if (!vr.IsValid) { return(Response.CreateFailureResponse(vr.Message)); } try { using (var ts = new TransactionScope()) { var user = _userRepository.Get(request.UserId); if (!_passwordStrengthValidator.IsPasswordGoodEnough(request.NewPassword)) { return(Response.CreateFailureResponse("too weak password")); } user.ChangePassword(request.NewPassword); _userRepository.Update(user); ts.Complete(); } } catch (Exception exception) { _logger.LogError(exception); return(Response.CreateFailureResponse(exception.Message)); } _logger.LogInfo("Method ChangePassword ended at: " + DateTime.Now); return(Response.CreateSuccessfulResponse()); }