protected virtual Exception UnwrapException(Exception exception)
{
if (exception is TargetInvocationException || exception is RequestExecutionException)
return exception.InnerException != null ? UnwrapException(exception.InnerException) : exception;
return exception;
}